ホームページ >バックエンド開発 >PHPチュートリアル >PHP の 8 つのあまり知られていないセキュリティ関数の分析、php のあまり知られていない関数_PHP チュートリアル
この記事の例では、PHP の 8 つのあまり知られていないセキュリティ関数について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
セキュリティはプログラミングの非常に重要な側面です。どのプログラミング言語でも、プログラムの安全性を確保するために多くの関数やモジュールが提供されています。最近の Web サイト アプリケーションでは、多くの場合、世界中のユーザーから入力を取得する必要がありますが、「それらのユーザーが入力したデータは決して信頼できない」ことは誰もが知っています。そのため、さまざまな Web 開発言語では、ユーザー入力データのセキュリティを確保するための関数が提供されています。ここでは、有名なオープンソース言語である PHP の便利なセキュリティ機能を紹介します。
PHPでは、いくつかの便利な機能がオープンソース化されており、SQLインジェクション攻撃やXSS(クロスサイトスクリプティング:クロスサイトスクリプティング)攻撃など、さまざまな攻撃からWebサイトを防ぐのに非常に便利です。プロジェクトのセキュリティを確保するために PHP で一般的に使用される関数を見てみましょう。これは完全なリストではなく、i プロジェクトに役立つと思われるいくつかの関数にすぎないことに注意してください。
1.mysql_real_escape_string()
この関数は、PHP での SQL インジェクション攻撃を防ぐ場合に非常に役立ちます。この関数は、一重引用符、二重引用符、バックスラッシュなどの特殊文字にバックスラッシュを追加して、このデータをクエリする前にユーザーが提供した入力がクリーンであることを確認します。ただし、この機能はデータベースへの接続を前提として使用していることに注意してください。
ただし、mysql_real_escape_string() の使用は推奨されなくなりました。すべての新しいアプリケーションは、データベース操作を実行するために PDO などの関数ライブラリを使用する必要があります。つまり、既製のステートメントを使用して SQL インジェクション攻撃を防ぐことができます。
2. まつげを追加します
この関数の原理は mysql_real_escape_string() と似ています。ただし、php.iniファイルの「magic_quotes_gpc」の値が「on」の場合は、この機能を使用しないでください。 magic_quotes_gpc のデフォルト値は on で、すべての GET、POST、COOKIE データに対して addslashes() が自動的に実行されます。 magic_quotes_gpc によってエスケープされた文字列に対して addslashes() を使用しないでください。二重エスケープが発生するためです。 get_magic_quotes_gpc() 関数を使用すると、それが有効かどうかを判断できます。
3.htmlentities()
この機能は、ユーザーが入力したデータをフィルタリングするのに非常に便利です。一部の特殊文字を HTML エンティティに変換します。たとえば、ユーザーが < を入力すると、この関数によって HTML エンティティ < (<) に変換され、ユーザーが > を入力すると、エンティティ> に変換されます。
4.htmlspecialchars()
HTML では、一部の特定の文字が特別な意味を持ちます。文字の元の意味を維持したい場合は、それらを HTML エンティティに変換する必要があります。この関数は変換された文字列を返します。たとえば、「&」(アンパサンド) は「&」に変換されます追記: ここの原文に誤りがあります。取り上げてくださった Jin Yu さんに感謝します。現在は修正されており、この機能に共通の変換文字も添付されています:
実行された翻訳は次のとおりです:
「&」(アンパサンド) は「&」になります
ENT_NOQUOTES が設定されていない場合、「"」(二重引用符) は「"」になります。
ENT_QUOTES が設定されている場合のみ、「'」 (一重引用符) は '' (または ') になります。
「<」(未満) は「<」になります
「>」(より大きい) は「>」になります
5.strip_tags()
この関数は、文字列からすべての HTML、JavaScript、および PHP タグを削除できます。もちろん、関数の 2 番目のパラメーターを設定することで、いくつかの特定のタグを表示することもできます。
6.md5()
セキュリティの観点から、単純なパスワードをデータベースに保存する一部の開発者の行為は推奨されません。 md5() 関数は、指定された文字列の 32 文字の md5 ハッシュを生成できます。このプロセスは不可逆的です。つまり、md5() の結果から元の文字列を取得することはできません。
オープンソース データベースではハッシュ値の平文を逆チェックできるため、現時点ではこの関数は安全とは考えられていません。 MD5 ハッシュ データベースのリストはここで見つけることができます
7.sha1()
この関数は md5() に似ていますが、異なるアルゴリズムを使用して 40 文字の SHA-1 ハッシュを生成します (md5 は 32 文字のハッシュを生成します)。絶対的な安全性を得るためにこの機能に依存しないでください。そうしないと、予期しない結果が生じる可能性があります。
8. 間隔()
まだ笑わないでください、この機能がセキュリティとは何の関係もないことはわかっています。 intval() 関数は、変数を整数型に変換します。この関数を使用すると、特に ID や年齢などのデータを解析する場合に、PHP コードをより安全にすることができます。元の英語のアドレスを添付します: http://www.pixelstech.net/article/1300722997-Useful-functions-to-provide-secure-PHP-application
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。