PHP開発勉強メモ

WBOY
WBOYオリジナル
2016-08-08 09:26:125269ブラウズ

1. ユーザーがログインしたりデータをクエリしたりするときに、SQL ステートメントに影響を与える引用符やその他の記号が含まれる場合があります (SQL インジェクション攻撃)。これは、データベース内で操作を実行するときに影響を及ぼします。場合、それはどうすればよいですか?
スキーム: 追加スラッシュとストリップスラッシュを使用できます
追加スラッシュは一重引用符 (,)、二重引用符 (")、バックスラッシュ ()、およびバックスラッシュを使用した NULL (NULL 文字) をエスケープできます
ストリップスラッシュは追加スラッシュの反対です 1 つの方法は、これらのエスケープされた値を復元することです
2. 一部の PHP バージョンでは、magic_quotes_gpc 構成が便利です。つまり、自動マジック クオートです。つまり、この構成がオンになっている場合、値 $_POST、$_COOKIE、$_SESSION が自動的に設定されます。エスケープ、エスケープする必要はありません
この場合はどうすればよいですか?
答え: 互換性と移植性のために、それを判断する必要があります。
次のコードを見てください:

<?php 
 
$textarea = $_POST['textarea'];
 
if(get_magic_quotes_gpc()){
    echo '魔术引号以开启,$textarea不需要转义','<br />';
}else{
    echo '魔术引号未开启,$textarea需要转义','<br />';
    $textarea = addslashes($textarea);
}
 ?>

3. XSS 攻撃 この場合はどうすればよいでしょうか?
答え: XSS 攻撃: カスケード スタイル シート (CSS) の略語と混同しないでください
htmlspecialchars メソッド、つまり html エンティティ エスケープを使用できます。つまり、<> などの HTML シンボルは変換されるため、印刷されるときはスクリプトではなくテキストとしてのみ扱われます
<?php 
 
file_put_contents('01.txt', htmlspecialchars($_POST['textarea']));
echo file_get_contents('01.txt'),'<br />';
//返回<script type="text/javascript"> while (true) { alert('a'); }; </script>
 ?>

以上、PHP開発学習ノートを内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。