Avatar billede phliplip Nybegynder
10. november 2004 - 20:48 Der er 4 kommentarer og
1 løsning

Adgang nægtet ved upload af fil

Hej Eksperter!

Får en script fejl der siger 'Adgang nægtet' når jeg i min form har valgt en fil til upload.. men ikke når jeg ikke har valgt en fil?

Har læst et sted på E at det måske havde noget med JS Security at gøre. Men eftersom jeg ikke ændre på file-elementet, kun læser value og click()'er på det.. så tænkte jeg at jeg lige ville forhøre mig herinde!

Lige lidt om sidens opbygning.. index.php med en iframe der loader iframe.php som includer - hvori der så er en iframe der loader iframe.php der includer create_user.php.. som så er følgende fil

Hulemand er bare en erstatning for det ord der står normalt.
META-tags er også snippet ud - går ikke ud fra at det har noget at sige
-----
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Hulemand Klub Danmark</title>
    <link rel="stylesheet" href="css/iframe.css" type="text/css" media="all">
    <script type="text/javascript" src="javascript/iframe.js"></script>
  </head>

  <body onload="init();">
    <div id="globalcontainer">
      <table id="globalframe" cellspacing="0" cellpadding="0">
        <tr>
          <td id="globalframemaincell">
            <table id="maintable" cellpadding="0" cellspacing="0">
              <tr>
                <td class="title">Opret Bruger</td>
              </tr>
              <tr>
                <td style="text-align: center;">Alle felter med <span class="little_title">*</span> skal udfyldes !</td>
              </tr>
              <tr>
                <td>
                  <form action="/mkdk/iframe.php?module_id=11&file=create_user.php" id="create_user_form" method="POST" enctype="multipart/form-data">
                  <input type="hidden" name="order" value="create">
                  <table cellspacing="0" cellpadding="2">
                    <tr>
                      <td>Medlems nr:</td>
                      <td><input type="text" name="acount_id" value="1" style="width: 35px;"></td>
                      <td style="padding-left: 50;">CVR/CPR:</td>
                      <td><input type="text" name="cvrcpr" value=""></td>
                    </tr>
                    <tr>
                      <td>Firma:</td>
                      <td><input type="text" name="company_name" value=""></td>
                      <td style="padding-left: 50;">Stilling:</td>
                      <td><input type="text" name="co_position" value=""></td>
                    </tr>
                    <tr>
                      <td valign="top">Køn:</td>
                      <td>
                        <input type="radio" name="gender" value="male" class="radio" id="gender_male" checked> <label for="gender_male">Mand</label><br>
                        <input type="radio" name="gender" value="female" class="radio" id="gender_female"> <label for="gender_female">Kvinde</label>
                      </td>
                      <td style="padding-left: 50;">Fødselsdato:</td>
                      <td>                        <select name="birth_day" size="1">                          <option value="1">01</option>                          <option value="2">02</option>                          <option value="3">03</option>                          <option value="4">04</option>                          <option value="5">05</option>                          <option value="6">06</option>                          <option value="7">07</option>                          <option value="8">08</option>                          <option value="9">09</option>                          <option value="10">10</option>                          <option value="11">11</option>                          <option value="12">12</option>                          <option value="13">13</option>                          <option value="14">14</option>                          <option value="15">15</option>                          <option value="16">16</option>                          <option value="17">17</option>                          <option value="18">18</option>                          <option value="19">19</option>                          <option value="20">20</option>                          <option value="21">21</option>                          <option value="22">22</option>                          <option value="23">23</option>                          <option value="24">24</option>                          <option value="25">25</option>                          <option value="26">26</option>                          <option value="27">27</option>                          <option value="28">28</option>                          <option value="29">29</option>                          <option value="30">30</option>                          <option value="31">31</option>                        </select>                        <select name="birth_month" size="1">                          <option value="1">January</option>                          <option value="2">February</option>                          <option value="3">March</option>                          <option value="4">April</option>                          <option value="5">May</option>                          <option value="6">June</option>                          <option value="7">July</option>                          <option value="8">August</option>                          <option value="9">September</option>                          <option value="10">October</option>                          <option value="11">November</option>                          <option value="12">December</option>                        </select>                        <select name="birth_year" size="1">                          <option value="1986">1986</option>                          <option value="1985">1985</option>                          <option value="1984">1984</option>                          <option value="1983">1983</option>                          <option value="1982">1982</option>                          <option value="1981">1981</option>                          <option value="1980">1980</option>                          <option value="1979">1979</option>                          <option value="1978">1978</option>                          <option value="1977">1977</option>                          <option value="1976">1976</option>                          <option value="1975">1975</option>                          <option value="1974">1974</option>                          <option value="1973">1973</option>                          <option value="1972">1972</option>                          <option value="1971">1971</option>                          <option value="1970">1970</option>                          <option value="1969">1969</option>                          <option value="1968">1968</option>                          <option value="1967">1967</option>                          <option value="1966">1966</option>                          <option value="1965">1965</option>                          <option value="1964">1964</option>                          <option value="1963">1963</option>                          <option value="1962">1962</option>                          <option value="1961">1961</option>                          <option value="1960">1960</option>                          <option value="1959">1959</option>                          <option value="1958">1958</option>                          <option value="1957">1957</option>                          <option value="1956">1956</option>                          <option value="1955">1955</option>                          <option value="1954">1954</option>                          <option value="1953">1953</option>                          <option value="1952">1952</option>                          <option value="1951">1951</option>                          <option value="1950">1950</option>                          <option value="1949">1949</option>                          <option value="1948">1948</option>                          <option value="1947">1947</option>                          <option value="1946">1946</option>                          <option value="1945">1945</option>                          <option value="1944">1944</option>                          <option value="1943">1943</option>                          <option value="1942">1942</option>                          <option value="1941">1941</option>                          <option value="1940">1940</option>                          <option value="1939">1939</option>                          <option value="1938">1938</option>                          <option value="1937">1937</option>                          <option value="1936">1936</option>                          <option value="1935">1935</option>                          <option value="1934">1934</option>                          <option value="1933">1933</option>                          <option value="1932">1932</option>                          <option value="1931">1931</option>                          <option value="1930">1930</option>                          <option value="1929">1929</option>                          <option value="1928">1928</option>                          <option value="1927">1927</option>                          <option value="1926">1926</option>                          <option value="1925">1925</option>                          <option value="1924">1924</option>                        </select>                        </td>
                    </tr>
                    <tr>
                      <td>Fornavn:</td>
                      <td><input type="text" name="first_name" value=""><span class="little_title">*</span></td>
                      <td style="padding-left: 50;">&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Efternavn:</td>
                      <td><input type="text" name="surname" value=""><span class="little_title">*</span></td>
                      <td style="padding-left: 50;">Brugernavn:</td>
                      <td><input type="text" name="username" value=""><span class="little_title">*</span></td>
                    </tr>
                    <tr>
                      <td>Adresse:</td>
                      <td><input type="text" name="address" value=""><span class="little_title">*</span></td>
                      <td style="padding-left: 50;">Kodeord:</td>
                      <td><input type="password" id="password" name="password" value=""><span class="little_title">*</span></td>
                    </tr>
                    <tr>
                      <td>Post nr.:</td>
                      <td><input type="text" name="zip_code" value="" style="width: 35px;"><span class="little_title">*</span></td>
                      <td style="padding-left: 50;">Kodeord:</td>
                      <td><input type="password" id="password_verified" name="password_verified" value=""><span class="little_title">*</span> (gentaget)</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                      <td colspan="2" style="padding-left: 50;"><img src="button.php?text=Gennerer tilfældig" onclick="document.getElementById('password').value = document.getElementById('password_verified').value = GeneratePassword('Kodeordet er', 'Virker kun med 4.0+ browsere');" class="button">&nbsp;<img src="button.php?text=Kontrollér kodeord" onclick="verifyPasswords('password', 'password_verified', 'Indtast kodeord', 'Indtast kodeord (gentaget)', 'Kodeordene matchede hinanden', 'Kodeordene var forskellige');" class="button"></td>
                    </tr>
                    <tr>
                      <td>Telefon:</td>
                      <td><input type="text" name="phone" value=""><span class="little_title">*</span></td>
                      <td style="padding-left: 50;">Brugergruppe:</td>
                      <td><select name="group_id" onchange="if(this.value == '0') { alert('Du har ikke rettigheder til at oprette brugere af denne type !'); }" ><option value="1">Super Administrator</option><option value="2">Administrator</option><option value="3">Moderator</option><option value="4" selected>User</option></select>                      </td>
                    </tr>
                    <tr>
                      <td>Mobil:</td>
                      <td><input type="text" name="cell" value=""></td>
                      <td style="padding-left: 50;">Suspenderet:</td>
                      <td><input type="checkbox" class="checkbox" name="suspended" value="true"></td>
                    </tr>
                    <tr>
                      <td>Fax:</td>
                      <td><input type="text" name="fax" value=""></td>
                      <td rowspan="3" style="padding-left: 50;">Beskrivelse:</td>
                      <td rowspan="3"><textarea name="text"></textarea></td>
                    </tr>
                    <tr>
                      <td>Email:</td>
                      <td><input type="text" name="email" value=""><span class="little_title">*</span></td>
                    </tr>
                    <tr>
                      <td>Hjemmeside:</td>
                      <td><input type="text" name="homepage" value=""></td>
                    </tr>
                    <tr>
                      <td>Signatur:</td>
                      <td><textarea name="signature" style="width: 150px"></textarea></td>
                      <td style="padding-left: 50;">Rettigheder:</td>
                      <td><span class="note">Rettigheder mangler!</span></td>
                    </tr>
                    <tr>
                      <td colspan="4" class="redbordertopbottom"><span class="note">Kontakt-personer mangler!</span></td>
                    </tr>
                    <tr>
                      <td valign="top" class="little_title">Profil billede</td>
                      <td valign="top" style="padding: 20px;"><b>Understøttes:</b><br>
&nbsp;&nbsp;.gif<br>
&nbsp;&nbsp;.jpeg<br>
&nbsp;&nbsp;.png                        <br><br>
                        <b>Fil størrelse:</b><br>
                        &nbsp;&nbsp;Max. 1 MB<br>
                        <br>
                        <b>Dimensioner:</b><br>
                        &nbsp;&nbsp;Max. brede: 2048 pixel<br>
                        &nbsp;&nbsp;Max. højde: 1536 pixel<br>
                      </td>
                      <td align="center" colspan="2">
                        <div id="showImage" style="padding-bottom: 2px;"><img src="image_view.php?text=Vælg profil billede" id="uploadedImage">
                        </div>
                        <input type="hidden" name="MAX_FILE_SIZE" value="1048576">
                        <input style="position: absolute; top: -100px;" name="uploaded_image" id="realFile" type="file" onchange="showImg('realFile', 'showImage', 'uploadedImage'); document.getElementById('imgCancelButton').src = 'button.php?text=Annullér&min_width=50';">
                        <img src="button.php?text=Find billede.." onclick="document.getElementById('realFile').click();" class="button"> <img src="button.php?text=Annullér&text_color=666666&min_width=50" id="imgCancelButton" onclick="document.getElementById('showImage').innerHTML = '<img src=\'image_view.php?text=Vælg profil billede\' id=\'uploadedImage\'>'; this.src = 'button.php?text=Annullér&text_color=666666&min_width=50'; document.getElementById('realFile').value = '';" class="button">
                        <br><br>
                        Billede tekst:<br>
                        <input type="text" name="image_text" value="">
                      </td>
                    </tr>
                    <tr>
                      <td colspan="4" class="redbordertop" style="font-size: 0px;">&nbsp;</td>
                    </tr>
                    <tr>
                      <td class="little_title">Ekstra</td>
                      <td>&nbsp;</td>
                      <td class="little_title">Anonymitet</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>ICQ:</td>
                      <td><input type="text" name="icq" value=""></td>
                      <td rowspan="2" style="padding-left: 50;">Navn:</td>
                      <td rowspan="2">                        <input type="radio" name="show_name" value="true" id="show_name_true" class="radio"> <label for="show_name_true">Helt</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>Anders And</i><br>
                        <input type="radio" name="show_name" value="partially" id="show_name_partially" class="radio" checked> <label for="show_name_partially">Delvist</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>Anders A</i><br>
                        <input type="radio" name="show_name" value="Nej" id="show_name_false" class="radio"> <label for="show_name_false">Slet ikke</label>&nbsp;&nbsp;&nbsp;&nbsp;<i>An(d)onym / Brugernavn</i><br>
                      </td>
                    </tr>
                    <tr>
                      <td>MSN:</td>
                      <td><input type="text" name="msn" value=""></td>
                    </tr>
                    <tr>
                      <td colspan="2" style="font-size: 0px;">&nbsp;</td>
                      <td colspan="2" style="font-size: 0px; border-top-style: solid; border-top-width: 1px; border-top-color: #C0C0C0;">&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Nyhedsbrev:</td>
                      <td><input type="checkbox" name="newsletter" value="1" id="newsletter" class="checkbox" checked> <label for="newsletter">Ja</label></td>
                      <td rowspan="2" style="padding-left: 50;">Adresse:</td>
                      <td rowspan="2">                        <input type="radio" name="show_address" value="true" id="show_address" class="radio"> <label for="show_address_true">Helt</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>Adresse, Post nr. By, Landsdel</i><br>
                        <input type="radio" name="show_address" value="partially" id="show_address" class="radio" checked> <label for="show_address_partially">Delvist</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>Post nr. By, Landsdel</i><br>
                        <input type="radio" name="show_address" value="false" id="show_address" class="radio"> <label for="show_address_false">Kun landsdel</label><br>
                      </td>
                    </tr>
                    <tr>
                      <td>Medlemskab:</td>
                      <td><input type="radio" name="membership" value="active" id="membership_active" class="checkbox"> <label for="membership_active">Aktivt</label><br>                        <input type="radio" name="membership" value="passive" id="membership_passive" class="checkbox" checked> <label for="membership_passive">Passivt</label></td>
                    </tr>
                    <tr>
                      <td colspan="2" style="font-size: 0px;">&nbsp;</td>
                      <td colspan="2" style="font-size: 0px; border-top-style: solid; border-top-width: 1px; border-top-color: #C0C0C0;">&nbsp;</td>
                    </tr>
                    <tr>
                      <td rowspan="3">Velkomst gave:</td>
                      <td rowspan="3">                        <input type="radio" name="welcome_gift" value="Lille streamer" id="little_streamer" class="radio"> <label for="little_streamer">Lille streamer</label><br>
                        <input type="radio" name="welcome_gift" value="Mellem streamer" id="medium_streamer" class="radio" checked> <label for="medium_streamer">Mellem streamer</label><br>
                        <input type="radio" name="welcome_gift" value="Stor streamer" id="big_streamer" class="radio"> <label for="big_streamer">Stor streamer</label>
                      </td>
                      <td style="padding-left: 50;">Telefon:</td>
                      <td><input type="checkbox" name="show_phone" value="1" id="show_phone" class="checkbox"> <label for="show_phone">Ja</label></td>
                    </tr>
                    <tr>
                      <td style="padding-left: 50;">Mobil:</td>
                      <td><input type="checkbox" name="show_cell" value="1" id="show_cell" class="checkbox"> <label for="show_cell">Ja</label></td>
                    </tr>
                    <tr>
                      <td style="padding-left: 50;">Fax:</td>
                      <td><input type="checkbox" name="show_fax" value="1" id="show_fax" class="checkbox"> <label for="show_fax">Ja</label></td>
                    </tr>
                    <tr>
                      <td>Kendskab:</td>
                      <td>
                        <select name="knowledge">
                          <option value="Ikke oplyst">Ikke oplyst</option>                          <option value="Medlem">Medlem</option>                          <option value="Mund-til-mund">Mund-til-mund</option>                          <option value="Klubjakke">Klubjakke</option>                          <option value="Internettet">Internettet</option>                          <option value="Søgemaskine">Søgemaskine</option>                          <option value="Forhandler">Forhandler</option>                          <option value="Flyver (Brochure)">Flyver (Brochure)</option>                          <option value="Andet">Andet</option>                        </select>
                      </td>
                      <td style="padding-left: 50;">Email:</td>
                      <td><input type="checkbox" name="show_email" value="1" id="show_email" class="checkbox"> <label for="show_email">Ja</label></td>
                    </tr>
                    <tr>
                      <td colspan="4" class="redbordertop" style="font-size: 0px;">&nbsp;</td>
                    </tr>
                    <tr>
                      <td class="little_title">Opret Bil</td>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Model:</td>
                      <td colspan="3">
                        <select name="car_id" size="1">
                          <option value="0" class="select_top">Vælg model..</option>
                          <option value="0" class="select_group">Ikke på listen</option>
                          <option value="9991">Ukendt model</option>
                          <option value="9992">Fra før 1986</option>
                          <option value="9993">Andet</option>
                        </select>
                        <span class="little_title">*</span>
                      </td>
                    </tr>
                    <tr>
                      <td>Motor:</td>
                      <td><textarea name="motor" style="width: 150px;"></textarea></td>
                      <td>&nbsp;</td>
                      <td><input type="text" name="horsepower" style="width: 40px; text-align: right;" value="">hk&nbsp;&nbsp;<input type="text" name="torque" style="width: 40px; text-align: right;" value="">nm</td>
                    </tr>
                    <tr>
                      <td>Dæk & fælge:</td>
                      <td><textarea name="wheels" style="width: 150px;"></textarea></td>
                      <td style="padding-left: 50;">Undervogn:</td>
                      <td><textarea name="suspension" style="width: 150px;"></textarea></td>
                    </tr>
                    <tr>
                      <td>ICE:<br>(Bilstereo)</td>
                      <td><textarea name="ice" style="width: 150px;"></textarea></td>
                      <td style="padding-left: 50;">Styling:</td>
                      <td><textarea name="styling" style="width: 150px;"></textarea></td>
                    </tr>
                    <tr>
                      <td>Interiør:</td>
                      <td><textarea name="interior" style="width: 150px;"></textarea></td>
                      <td style="padding-left: 50;">Ekstra tilbehør:</td>
                      <td><textarea name="accessories" style="width: 150px;"></textarea></td>
                    </tr>
                    <tr>
                      <td colspan="4" class="redbordertop" style="font-size: 0px;">&nbsp;</td>
                    </tr>
                    <tr>
                      <td class="little_title">Procedure</td>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Bekræftelse:</td>
                      <td><input type="checkbox" name="verifyemail" value="1" id="verifyemail" class="checkbox" checked onclick="if(this.checked == true) { document.getElementById('payed').checked = false; document.getElementById('payed').disabled = true; document.getElementById('label_payed').style.color = '#AAAAAA'; document.getElementById('showonfront').checked = false; document.getElementById('showonfront').disabled = true; document.getElementById('label_showonfront').style.color = '#AAAAAA'; } else { document.getElementById('payed').disabled = false; document.getElementById('label_payed').style.color = '#666666'; }"> <label for="verifyemail">Send email bekræftelse</label></td>                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Betalt:</td>
                      <td><input type="checkbox" name="payed" value="1" id="payed" class="checkbox" disabled onclick="if(this.checked == false) { document.getElementById('showonfront').checked = false; document.getElementById('showonfront').disabled = true; document.getElementById('label_showonfront').style.color = '#AAAAAA'; } else { document.getElementById('showonfront').disabled = false; document.getElementById('label_showonfront').style.color = '#666666'; }"> <label for="payed" id="label_payed" style="color: #AAAAAA;">Ja</label></td>                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>Vis på forside:</td>
                      <td><input type="checkbox" name="showonfront" value="1" id="showonfront" class="checkbox" disabled> <label for="showonfront" id="label_showonfront" style="color: #AAAAAA;">Ja</label></td>                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td colspan="4" class="redbordertop" style="text-align: center"><br><img src="button.php?text=Opret bruger&font_size=10&height=20&min_width=100" onclick="document.getElementById('create_user_form').submit();" class="button">&nbsp;&nbsp;&nbsp;&nbsp;<img src="button.php?text=Nulstil&font_size=10&height=20&min_width=100" onclick="if(confirm('Er du sikker på at du vil ryde alle indtastede data?')) { resetAdminCreateUserForm(document.getElementById('create_user_form')); }" class="button"><br><br><br></td>
                    </tr>
                  </table>
                  </form>                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>
Avatar billede olebole Juniormester
11. november 2004 - 08:39 #1
<ole>

Du kan ikke længere scripte på en input type="file". Scriptet bygger på en bug i IE, som nu er rettet - hvorfor hele frontend delen af dit script er ubrugeligt.

/mvh
</bole>
Avatar billede phliplip Nybegynder
11. november 2004 - 17:05 #2
Det forstår jeg ikke noget af.. jeg kan godt læse values fra type="file", og selve den box hvor jeg skal "gennemse" så at sige kommer også fint. Jeg kører ikke et script der prøver at ændre value på type="file". Det eneste der gøres er at læse value fra type="file", og ændre noget innerHTML i et div så det valgte billede bliver vist.. og den del virker upåklageligt |-/

Og det der så er gjort er at at selv type="file" er skubbet ud af skærmen, style="top: -100; left: -100;" og jeg så bruger en anden button til at click() på type="file".. og det virker!?? Og value må jo blive ændret, for jeg læser value til at ændre billedet i DIV'en
Avatar billede olebole Juniormester
11. november 2004 - 17:15 #3
Nej, men du tror, det virker. Når du har scriptet på en type="file", får du heldigvis ikke adgang til at uploade ... som du jo også selv har erfaret.
Det var et gigantisk sikkerhedshul. Derfor skriver jeg 'heldigvis' ... det er ikke noget personligt  :)
Avatar billede phliplip Nybegynder
11. november 2004 - 19:19 #4
Hmm... ja ok.. skulle man så ikke have givet en FEJL besked lidt tidligere i forløbet !? Fx. når man prøver at køre det script der 'piller' ved type="file"..

Nå Well.. jeg finder på noget andet, lidt mere primitivt *Host* var ellers lige så glad/stolt af det script jeg havde lavet :( TUD
Avatar billede olebole Juniormester
12. november 2004 - 05:57 #5
Tjoo ... hvis man bruger type="file" til upload, kan jeg da godt se, det ville være meget rart med en fejlmelding, når kreativiteten løber løbsk - men det ville jo være ærgeligt at få elementet ødelagt med fejlmeldinger i forhold til alle de andre ting, man kan bruge det til. At bruge det i en form og til fil-upload er jo kun én mulig anvendelse  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester