Hallo
Ich habe ein aktuelles Beispiel bei dem ich mich frage, ob das nicht etwas übertrieben wäre:
Erwarteter link:
Mod_Rewrite Regel:
Die ersten Zeilen der aufgerufenen PHP:
Der Zahlencode ist ein md5-hash. Also immer 32 Zeichen lang. Durch Mod_Rewrite schliese ich ja schon mal einige Manipulationen aus. Zudem überprüfe ich ob der Hashwert auch wirklich 32 Zeichen lange ist.
Ich möchte dann mit dem hashwert eine SELECT * FROM table WHERE ID = HASHWERT abfrage machen. Soll ich davor jetzt nochmal die normalen Sicherheitsfunktionen drüber laufen lassen, die ich sonst bei allen anderen Eingaben auch mache?
Oder wär das übertrieben?
Geht mir hier nicht nur um den einen Fall, sondern ist generell eine Frage die immer wieder kommt.
EDIT:
Hab noch eine Frage zu microtime().
Ich erstelle den hash aus md5(microtime()); wär ist vllt besser wenn ich noch text dazunehme, der auch relativ selten ist. Z.B. md5($zitat,microtime());
Wär das besser?
Ich habe ein aktuelles Beispiel bei dem ich mich frage, ob das nicht etwas übertrieben wäre:
Erwarteter link:
Code:
http://www.domain.de/de/zitat_f5676fe161385788a7c6e2c318e306b3.html
Code:
RewriteRule ^([^/]*)/zitat_([^/]*).html /main.php?sprache=$1&side=showzitat&formaction=$2 [L]
PHP-Code:
if(!isset($_GET['formaction']) || strlen($_GET['formaction']) != "32")
{
echo '<meta http-equiv="refresh" content="8; url='.$_SERVER['HTTP_REFERER'].'">';
echo "Kein Zugriff auf diese Seite erlaubt";
}
Ich möchte dann mit dem hashwert eine SELECT * FROM table WHERE ID = HASHWERT abfrage machen. Soll ich davor jetzt nochmal die normalen Sicherheitsfunktionen drüber laufen lassen, die ich sonst bei allen anderen Eingaben auch mache?
PHP-Code:
$zitat = mysql_real_escape_string(htmlspecialchars(strip_tags($_POST['zitat'])));
Geht mir hier nicht nur um den einen Fall, sondern ist generell eine Frage die immer wieder kommt.
EDIT:
Hab noch eine Frage zu microtime().
Ich erstelle den hash aus md5(microtime()); wär ist vllt besser wenn ich noch text dazunehme, der auch relativ selten ist. Z.B. md5($zitat,microtime());
Wär das besser?
Kommentar