ホームページ  >  記事  >  バックエンド開発  >  PHP の文字セキュリティ フィルタリング機能の簡単な説明

PHP の文字セキュリティ フィルタリング機能の簡単な説明

墨辰丷
墨辰丷オリジナル
2018-06-13 09:50:581688ブラウズ

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

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

1. mysql_real_escape_string()

この関数は、かつては PHP での SQL インジェクション攻撃を防ぐのに非常に役立ちました。ユーザーの入力をクエリに使用する前に、その入力が安全であることを確認するための「バックスラッシュ」。ただし、この機能はデータベースに接続しているときに使用することに注意してください。
しかし、現在、mysql_real_escape_string() 関数は基本的に必要ありません。すべての新しいアプリケーション開発では、データベースを操作するために PDO などのライブラリを使用する必要があります。つまり、既製のステートメントを使用して SQL インジェクション攻撃を防ぐことができます。

2.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() 関数を通じて確認できます。

3. htmlentities()

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

4 に置き換えられます。htmlspecialchars()

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

5.strip_tags()

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

6. intval()

intval は、実際には変数を整数型に変換する機能ではありません。これは、整数パラメーターを取得する必要がある場合、特に ID や年齢などの整数データを解析する場合に、この関数を使用して PHP コードをより安全にすることができます。

これは、主に htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string などのいくつかの関数の併用を伴う、PHP がフォーム送信で特殊文字を処理する方法の概要であり、皆さんと共有したいと思います。
1. 特殊文字処理に関連するいくつかの PHP 関数

##htmlspecialchars 「に変わる」すべての文字が HTML 形式に変換されます上記の htmlspecialchars 文字に加えて、ダブルワードも含まれますセクション文字はエンコーディングなどで表示されます。 一重引用符、二重引用符、バックスラッシュ、NULLプラス バックスラッシュ エスケープバックスラッシュ文字を削除します#引用符を追加しますバックスラッシュ「\」を追加します。文字列 ## 内の \\ * ? [ ^ ] ( $ ) などの文字の前に " 記号を追加します。 に変換しますstrip_tagsHTML タグと PHP タグを削除しますタグ ブロック間のコンテンツを含め、文字列内の HTML タグと PHP タグを削除します文字列 HTML および PHP タグにエラーがある場合は、エラーが返されることに注意してください。 ##mysql_real_escape_string#SQL 文字列内の特殊文字をエスケープします。 #Escape \x00 \n \r Space \ ' " \x1a。これはマルチバイト文字の処理に非常に効果的です。 mysql_real_escape_string は文字セットを決定しますが、mysql_escape_string を考慮する必要はありません。

以上がPHP の文字セキュリティ フィルタリング機能の簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
関数名定義概要
アンパサンド、一重引用符と二重引用符、大なり小なり記号を HTML 形式に変換します& を & 「」を「
」に変える <変換先<
>変換>

##htmlentities()

スラッシュを追加します
変更される文字には、一重引用符 (')、二重引用符 (")、バックスラッシュ バックスラッシュ (\)、およびヌル文字 NULL が含まれます。 ストリップスラッシュ
文字列内にバックスラッシュが 2 つある場合は、1 つを削除し、1 つだけ残します。
##quotemeta##。
#nl2br() 改行文字を

これらは PHP に組み込まれている文字列フィルタリング関数であり、非常にシンプルで実用的です。友人が上手に活用できることを願っています。

要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

php を使用して ffmpeg を使用してビデオに字幕を追加する方法

UBB コード フィルタリングを実装するための php 正規表現クラス

##テキスト表示ドットマトリクスの幅と高さを取得する PHP メソッド