ホームページ >バックエンド開発 >PHPの問題 >PHPで安全でない文字列をフィルタリングする方法

PHPで安全でない文字列をフィルタリングする方法

藏色散人
藏色散人オリジナル
2021-06-19 10:18:203065ブラウズ

php で安全でない文字列をフィルターする方法: 1. mysql_real_escape_string 関数を使用して特殊文字に「バックスラッシュ」を追加します; 2. addslashes 関数を使用して特殊文字にバックスラッシュを追加します; 3. htmlentities 関数を使用してユーザー入力データをフィルターし、もっと。

PHPで安全でない文字列をフィルタリングする方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php安全でない文字列をフィルタリングするには? PHP の文字セキュリティ フィルタリング関数の使用概要

この記事では、主に PHP の文字セキュリティ フィルタリング関数について簡単に紹介します。SQL インジェクション攻撃や XSS 攻撃を防ぐのに非常に役立ちます。ここにいるみんな。

WEB開発の過程では、世界中のユーザーが入力したデータを取得する必要があることがよくあります。ただし、「ユーザーが入力したデータは決して信頼できません」。そのため、さまざまな Web 開発言語では、ユーザー入力データのセキュリティを確保するための関数が提供されています。 PHP には、SQL インジェクション攻撃や XSS 攻撃などの問題を防ぐのに役立つ非常に便利な関数がいくつかあります。


  • mysql_real_escape_string()

この関数は、PHP での SQL インジェクション攻撃を防ぐために使用されました。これは、一重引用符や二重引用符などの特殊文字に「バックスラッシュ」を追加して、クエリに使用する前にユーザーの入力が安全であることを確認します。ただし、この機能はデータベースに接続しているときに使用することに注意してください。

しかし、mysql_real_escape_string() 関数は基本的に不要になりました。すべての新しいアプリケーション開発では、データベースを操作するために PDO などのライブラリを使用する必要があります。言い換えれば、既成のステートメントを使用して SQL インジェクション攻撃を防ぐことができます。

  • addslashes()

この関数は、上記の mysql_real_escape_string() と非常に似ています。 , 特殊文字の場合も同様にバックスラッシュが付加されますが、設定ファイルphp.iniのmagic_quotes_gpcの値が「on」の場合はこの機能を使用しないように注意してください。 magic_quotes_gpc = on の場合、すべての GET、POST、COOKIE データに対して addslashes() が自動的に実行されます。 magic_quotes_gpc によってエスケープされた文字列に対して addslashes() を使用しないでください。二重エスケープが発生するためです。この変数の値は、PHP の get_magic_quotes_gpc() 関数を通じて確認できます。


  • #3htmlentities()


  • この関数は、ユーザー入力データをフィルタリングするのに非常に便利です。文字を HTML エンティティに変換できます。たとえば、ユーザーが文字「<」を入力すると、この関数によって HTML エンティティ「<」に変換されます (ソース コードを表示すると「<」が表示されます)。これにより、XSS および SQL インジェクションが防止されます。認識できない文字セットは無視され、ISO-8859-1


    ##htmlspecialchars()

  • に置き換えられます。

    #この関数は上記と非常によく似ています。HTML の一部の文字には特別な意味があります。そのような意味を反映したい場合は、文字を HTML エンティティに変換する必要があります。この関数は、変換された文字列を返します。


    strip_tags()

  • この関数は、文字列からすべての HTML を削除できます。もちろん、この関数の 2 番目のパラメータを設定することで、一部の特定のタグのフィルタリングを無視することもできます。


    intval()

  • intval は実際にはフィルタリング関数ではなく、変換することを目的としています。変数を整数型に変換します。これは、整数パラメータを取得する必要がある場合に非常に便利で、特に id や age などの整数データを解析する場合に、この関数を使用して PHP コードをより安全にすることができます。

フォーム送信で特殊文字を処理するための PHP のメソッドをまとめてみましょう。これには、主に htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string などのいくつかの関数を組み合わせて使用​​することが含まれます。みんなでコミュニケーションをとりましょう。
1. 特殊文字処理に関連するいくつかの PHP 関数

#関数名定義はじめにhtmlspecialcharsが使用されますwith、一重引用符と二重引用符、大なり小なり記号を HTML 形式に変換します&convert to&htmlentities()すべての文字は HTML 形式に変換されます上記の htmlspecialchars 文字に加えて、エンコーディングなどに全角文字の表示を含めます。 スラッシュを追加一重引用符、二重引用符、バックスラッシュ、 NULL とバックスラッシュ エスケープ変更される文字には、一重引用符 (')、二重引用符 (")、バックスラッシュ バックスラッシュ (\)、およびヌル文字 NULL が含まれます。stripslashesバックスラッシュ文字を削除します文字列内のバックスラッシュ文字を削除します。連続するバックスラッシュが 2 つある場合は、1 つを削除し、1 つを残します。バックスラッシュが 1 つしかない場合は、それを削除します。quotemeta引用符を追加文字列内の \\ * ? [ ^ ] ( $ ) などの文字の前にバックスラッシュ "\" 記号を追加します。 strip_tagsHTML タグと PHP タグを削除します文字列内の HTML タグと PHP タグをすべて削除します。タグ ブロック間のコンテンツ。文字列 HTML タグと PHP タグにエラーがある場合は、エラーも返されることに注意してください。 推奨学習: 「」

以上がPHPで安全でない文字列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
"convert to"
'convert to'
>convert Into>
##mysql_real_escape_string 中の特殊文字をエスケープします。 SQL 文字列 エスケープ \x00 \n \r スペース \ ' " \x1a。これはマルチバイト文字の処理に非常に効果的です。 mysql_real_escape_string は文字セットを決定しますが、mysql_escape_string を考慮する必要はありません。
PHP ビデオ チュートリアル