Autor Zpráva
Trickle
Profil
Zdravím
Nemám zkušenosti se zabezpečením skriptů. Je tu někdo kdo by mě do toho přeci jen zasvětil. Na tomto příkladu? Určitě při volání DB by mělo být nějaké zabezpečení té proměnné formou escape.. ale nevím jak to do toho zakomponovat. Plus i výpis nebo se mýlím ?
Děkuji za rady.
<?php 

if(isset($_GET["Lide_ID"])) {
  $Firma_ID=$_GET["Lide_ID"];  
  if(!$data=mysql_query("SELECT * FROM Lide where Lide_ID=$ Lide_ID"))
    {echo "Nepodařilo se načíst záznam";}
  else {
    $ Lide_Info=mysql_fetch_array($data);
    
    }
}
 
    echo "<TABLE BORDER=\"0\" cellpading=\"0\" cellspacing=\"0\">";
                    echo "<TR>";
                        echo "<TD>Jméno:</TD>";
                        echo "<TD>".$ Lide_Info["Jmeno"]."</TD>";
                    echo "</tr>";
                    
                    echo "<tr>";
                        echo "<TD >Město:</TD>";
                        echo "<TD>".$ Lide_Info["Mesto"]."</TD>";
                    echo "</TR>";
                    echo "<tr>";
                        echo "<TD>PSČ:</TD>";
                        echo "<TD>".$ Lide_Info["PSC"]."</TD>";
                    echo "</TR>";
                    
          echo "<tr>";
                        echo "<TD>Komentář:</TD>";
                        echo "<TD>".$ Lide_Info["Komentar"]."</TD>";
                    echo "</TR>";
                    echo "<tr>";
                  echo "</tr>";
                echo "</TABLE>";
   ?>
Fisir
Profil
Reaguji na Trickle:
Podívej se na definitivní příručku escapování.
Dan Charousek
Profil
Trickle:
Vkládáš-li text do databáze
$text = mysql_real_escape_string($_GET[...]);
Vypisuješ-li z databáze nebo odkudkoliv do HTML
echo htmlspecialchars($Lide_Info[...]);

Podrobnější info v definitivní příručce, na kterou odkazuje Fisir.
Trickle
Profil
Pravě že když vložím htmlspecialchars. Tak mi DB nevypíše vůbec nic.

echo "<TD>".htmlspecialchars($Firma_Info["Jmeno"])."</TD>";



Jasně už vím.. Protože jsem to vkládal do db ručně a ne přes rozhraní které to escapuje.
Martin2
Profil *
Trickle:
Ideálně bys měl používat nějakou databázovou vrstvu, která se o escapování (a vůbec celé sestavení SQL dotazu) stará sama. Například PDO nebo dibi. Všechny ostatní způsoby se dnes dají považovat za zastaralé a krajně nedoporučované.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: