8つの有用なPHPセキュリティ関数は、いくつか知っていますか?
2765 ワード
from:http://www.cnblogs.com/ido321/p/4101090.html
Useful functions to provide secure PHP appplication
訳文:有用なPHP安全関数
通訳:dwqs
安全はプログラミングの非常に重要な一つの面です.いずれのプログラミング言語においても、多くの関数またはモジュールがプログラムの安全性を確保するために提供されています.現代のウェブサイトのアプリケーションでは、世界中のユーザーからの入力を常に取得していますが、私たちは「いつまでもそれらのユーザーが入力したデータを信じてはいけない」ということを知っています.したがって、各種のWeb開発言語では、ユーザーの入力データの安全を保証する機能が提供されます.今日は、有名なオープンソース言語のPHPの中で、どのような有用な安全関数があるかを見に来ました.
PHPには、SQL注入攻撃、XSS(Cross Site Scripting:スパンスクリプト)攻撃など、あなたのサイトがさまざまな攻撃を受けるのを防ぐために、いくつかの有用な関数があります.PHPでよく使われている、プロジェクトの安全を確保できる関数を一緒に見ましょう.なお、これは完全なリストではなく、あなたのi項目についてはかなり関数があると思います.
1. mysqlリアル.エスケープstring.
この関数はPHPにおいてSQL注入攻撃を防止するために非常に有用である.この関数は、例えば、シングルクォーテーションマーク、ダブルクォーテーションマーク、バックスラッシュなどの特殊文字に対して、バックスラッシュバーを追加します.これらのデータを調べる前に、ユーザーが提供する入力はクリーンであることを確認します.ただし、この関数はデータベースに接続する前提で使用されます.
でも今はもうmysqlはオススメしません.リアル.エスケープstring()は、すべての新しいアプリケーションはPDOのような関数ライブラリを使ってデータベース操作を行うべきです.つまり、既存の文を使ってSQL注入攻撃を防ぐことができます.
2. addslashes()
この関数の原理とmysqlリアル.エスケープストリングが似ています.ただし、php.iniファイルでは、「magiccuquot;の値がon」の場合は、この関数を使用しないでください.magiccuquot;gupcのデフォルト値はonであり、すべての GET、POST 和 COOKIE データ自動運転 addslashes()です.もう布団に入れないでください. magiccus 変換した文字列を使用します. addslashes()は、二重変換の原因となりますので、get関数を使って、これがオンされているかどうかを確認してもいいです.
3. httmlentities()
この関数は、フィルタリングユーザが入力したデータに対して非常に有用です.いくつかの特殊文字をHTMLエンティティに変換します.たとえば、ユーザーが入力すると、この関数によってHTMLエンティティ(<)に変換され、入力すると、エンティティーgt.(HTMLエンティティ対照表)に変換されます.http://www.w3school.com.cn/html/html_entities.asp)XSSやSQLの注入攻撃を防ぐことができます.
4. httmlspecialchars()
HTMLでは、特定の文字には特殊な意味があります.文字の本来の意味を維持するためには、HTMLエンティティに変換するべきです.この関数は変換された文字列に戻ります.たとえば、「&」から「&"(ps:3番目の点のエンティティ対照表リンクを参照してください.)
ps:ここで原文が間違っています.ここで感謝します. を選択します.現在訂正されています.この関数でよく見られる変換記号を添付します.
The translations performed are:
'&'(ampersaid)becompes'&' ''''becons''when'
この関数は文字列のすべてのHTML、JavaScriptとPHPタグを取り除くことができます.もちろん、この関数の第二のパラメータを設定することによって、特定のラベルを出現させることもできます.
6. md 5()
セキュリティの観点から、いくつかの開発者がデータベースに簡単なパスワードを格納する行為は推奨されていません.md 5()関数は、与えられた文字列の32文字md 5ハッシュを生成し、このプロセスは可逆的ではなく、md 5()の結果から元の文字列を得ることができません.
この関数は現在は安全ではないと考えられています.ソースのデータベースは、ハッシュ値のテキストを逆方向にチェックすることができます.ここでMD 5ハッシュデータベースのリストを見つけることができます.
7. shar 1()
この関数はmd 5()と類似していますが、40文字のSHA-1ハッシュ(md 5が生成する32文字のハッシュ)を生成するために異なるアルゴリズムを使用しています.この関数に絶対的な安全を委託しないでください.そうでないと思わぬ結果になります.
8. intval()
笑ってはいけません.この関数は安全とは関係ないと知っています.intval()関数は変数を整数型に変換します.この関数を使ってPHPコードをより安全にしてもいいです.特にid、年齢というデータを解析している時に.
Useful functions to provide secure PHP appplication
訳文:有用なPHP安全関数
通訳:dwqs
安全はプログラミングの非常に重要な一つの面です.いずれのプログラミング言語においても、多くの関数またはモジュールがプログラムの安全性を確保するために提供されています.現代のウェブサイトのアプリケーションでは、世界中のユーザーからの入力を常に取得していますが、私たちは「いつまでもそれらのユーザーが入力したデータを信じてはいけない」ということを知っています.したがって、各種のWeb開発言語では、ユーザーの入力データの安全を保証する機能が提供されます.今日は、有名なオープンソース言語のPHPの中で、どのような有用な安全関数があるかを見に来ました.
PHPには、SQL注入攻撃、XSS(Cross Site Scripting:スパンスクリプト)攻撃など、あなたのサイトがさまざまな攻撃を受けるのを防ぐために、いくつかの有用な関数があります.PHPでよく使われている、プロジェクトの安全を確保できる関数を一緒に見ましょう.なお、これは完全なリストではなく、あなたのi項目についてはかなり関数があると思います.
1. mysqlリアル.エスケープstring.
この関数はPHPにおいてSQL注入攻撃を防止するために非常に有用である.この関数は、例えば、シングルクォーテーションマーク、ダブルクォーテーションマーク、バックスラッシュなどの特殊文字に対して、バックスラッシュバーを追加します.これらのデータを調べる前に、ユーザーが提供する入力はクリーンであることを確認します.ただし、この関数はデータベースに接続する前提で使用されます.
でも今はもうmysqlはオススメしません.リアル.エスケープstring()は、すべての新しいアプリケーションはPDOのような関数ライブラリを使ってデータベース操作を行うべきです.つまり、既存の文を使ってSQL注入攻撃を防ぐことができます.
2. addslashes()
この関数の原理とmysqlリアル.エスケープストリングが似ています.ただし、php.iniファイルでは、「magiccuquot;の値がon」の場合は、この関数を使用しないでください.magiccuquot;gupcのデフォルト値はonであり、すべての GET、POST 和 COOKIE データ自動運転 addslashes()です.もう布団に入れないでください. magiccus 変換した文字列を使用します. addslashes()は、二重変換の原因となりますので、get関数を使って、これがオンされているかどうかを確認してもいいです.
3. httmlentities()
この関数は、フィルタリングユーザが入力したデータに対して非常に有用です.いくつかの特殊文字をHTMLエンティティに変換します.たとえば、ユーザーが入力すると、この関数によってHTMLエンティティ(<)に変換され、入力すると、エンティティーgt.(HTMLエンティティ対照表)に変換されます.http://www.w3school.com.cn/html/html_entities.asp)XSSやSQLの注入攻撃を防ぐことができます.
4. httmlspecialchars()
HTMLでは、特定の文字には特殊な意味があります.文字の本来の意味を維持するためには、HTMLエンティティに変換するべきです.この関数は変換された文字列に戻ります.たとえば、「&」から「&"(ps:3番目の点のエンティティ対照表リンクを参照してください.)
ps:ここで原文が間違っています.ここで感謝します. を選択します.現在訂正されています.この関数でよく見られる変換記号を添付します.
The translations performed are:
'&'(ampersaid)becompes'&' ''''becons''when'
ENT_NOQUOTES
is not set. """(""")becompes'&菗039"(or&appos;)only when ENT_QUOTES
is set. '('(less than)becompes'<' ''(greater than)becompes'>'5. strippags()この関数は文字列のすべてのHTML、JavaScriptとPHPタグを取り除くことができます.もちろん、この関数の第二のパラメータを設定することによって、特定のラベルを出現させることもできます.
6. md 5()
セキュリティの観点から、いくつかの開発者がデータベースに簡単なパスワードを格納する行為は推奨されていません.md 5()関数は、与えられた文字列の32文字md 5ハッシュを生成し、このプロセスは可逆的ではなく、md 5()の結果から元の文字列を得ることができません.
この関数は現在は安全ではないと考えられています.ソースのデータベースは、ハッシュ値のテキストを逆方向にチェックすることができます.ここでMD 5ハッシュデータベースのリストを見つけることができます.
7. shar 1()
この関数はmd 5()と類似していますが、40文字のSHA-1ハッシュ(md 5が生成する32文字のハッシュ)を生成するために異なるアルゴリズムを使用しています.この関数に絶対的な安全を委託しないでください.そうでないと思わぬ結果になります.
8. intval()
笑ってはいけません.この関数は安全とは関係ないと知っています.intval()関数は変数を整数型に変換します.この関数を使ってPHPコードをより安全にしてもいいです.特にid、年齢というデータを解析している時に.