Sicherheitsscript sidescripting

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherheitsscript sidescripting

    Ich suche schon seit längerem eine gute lösung für meine homepage um side scripting zu verhindern. dafür würde ich gerne hören ob htmlspecialchars() ausreicht um angreifer agzuwehren, zumal ich die eingabe durch die funktion laufen lassen würde und dann in meine mysyl datenbank packe.
    habe auch schonmal an eine blackliste gedacht, aber wie machen das eig auf professionellen pages?
    freue mich über ideen!!!

  • #2
    Sidescripting? Noch nie gehört. Meinst du Crossscripting?
    Wenn Userdaten in eine DB kommen, dann musst du zusätzlich noch eine Funktion wie mysql_real_escape_string() verwenden, um sogenannte SQL Injections zu verhindern.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      ja ich meinte crossscripting und habe dazu jetzt folgendes gefunden


      $link = mysql_connect("localhost","root","");

      $query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES ('%s', '%s', %d)",
      mysql_real_escape_string($product_name, $link),
      mysql_real_escape_string($product_description, $link),
      $_POST['user_id']);

      mysql_query($query, $link);

      wenn ich vorher $product_name und $product_description mit htmlspecialchars() bearbeite und dann wie folgt in die datenbank einfüge dürfte ich doch auf der sicheren seite sein, oder etwa nicht?
      ich habe aber iwi noch probleme was die syntax angeht.. warum steht dort VALUES ('%s', '%s', %d) habe diese syntax mit %s,... und dann erst "mysql_real_escape_string($product_name, $link),..." noch nie gesehen.
      haben %s, %s,%d irgendeine bedeutun oder kann ich

      mysql_real_escape_string($product_name, $link),
      mysql_real_escape_string($product_description, $link),
      $_POST['user_id'])
      auch an deren stelle schreiben und ändert sich dann was bezüglich der sicherheit?

      Kommentar


      • #4
        sprintf()

        Kommentar


        • #5
          mysql_real_escape_string() bei der Eingabe und html_specialchars ERST bei der Ausgabe reicht vollkommen. In welcher Form du das verwendest (Stringverkettung, sprintf, ...) bleibt dir überlassen und ist geschmackssache. Ich für meinen Teil finde ersteres am übersichtlichsten. Gleiches behaupten andere aber auch von sprintf().

          Kommentar

          Lädt...
          X