ホームページ >バックエンド開発 >PHPチュートリアル >セキュリティを確保するために、PHP は送信されたデータに対してどのようなフィルタリングを行う必要がありますか?何をするか
セキュリティを確保するために、PHP は送信されたデータに対してどのようなフィルタリングを行う必要がありますか?
最も単純なユーザー ログイン $_POST['username']、$_POST['password'] を例に挙げます。SQL クエリを実行する前に、どのような検証が必要ですか?
-----解決策--------------------------------
SQL インジェクションを防止するには少なくとも一重引用符をエスケープし、XSS 攻撃を防止するには < をエスケープする必要があります。
既製の関数がいくつかあります htmlspecialchars($_POST['username'], ENT_QUOTES)
------解決策------------------
これは mysql インジェクションと呼ばれます。参考:
http://php.net/manual/en/security.database.sql-injection.php
解決策
http://stackoverflow.com/questions/60174 /best -way-to-stop-sql-injection-in-php
主にアンチクオート エスケープ mysql_real_escape_string
同時に、条件が許せば、drop、delete、挿入、更新など。
------解決策---------
SQL クエリの場合、mysql_real_escape_string のみが必要です。これは次のとおりです。これにより、SQL が正しく実行されることが保証されますが、一部のセキュリティ上の問題も防ぐことができます。
データに他の要件がある場合は、許可されているユーザー名/パスワードの長さなど、他の検証とフィルタリングを実行できます。
出力される可能性のあるコンテンツのみを HTML エンティティなどに変換またはフィルタリングする必要があり、詳細は実際のビジネスに基づいて決定する必要があります。 .
要するに、必要も計画もありません