私のウェブサイトでライブ行く前に、私は、セキュリティに関するいくつかの考えをした:
この質問フォームを確保する上で解決のために努力PHPの処理を理解していないについてです。
xssと SQLインジェクションが完全に安全でないこのベアボーンスクリプトを考慮してください。
<?
if ($_POST['submit']=="1"){
$input = $_POST['input'];
echo "echo the input: ".$input."<br/>";
}
?>
<form action="<? $PHP_SELF;?>" method="POST">
<input type="text" name="input" value="<? echo $_POST['input'];?>"/>
<input type="hidden" name="submit" value="1"/>
<input type="submit" value="submit"/>
</form>
私はこのような、このような注射は(フィールドの入力に)動作しない理由を疑問に思って:
";unset('index.php');
私は単純に「考えています。エコーを終了しを進めるよりますコード。 は、実際に私は、これは動作しません非常に満足していますが、私は理由を知りたい。 このactuallう作品「OR 1」のSQLのようなもので。
私はでこれを確保するために知っていますまたはhtmlspecialcharsですが、これは問題ではありません。私はこれを処理する際にPHPがどのように機能するかを知りたい。
おかげ
自分自身について: 'addslashes()'、 'mysql_real_escape_string()'、 'htmlspecialchars()'などのstring_munging関数には注意してください。 http://stackoverflow.com/questions/110575/do-htmlspecialchars-and-mysql-real-escape-string-keep-my-php-code-safe-from-inje/110576 – Cheekysoft