PHP でエスケープする addlashes 関数を使用するセキュリティ原則の分析、addslashes エスケープ_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:15:29
オリジナル
996 人が閲覧しました

PHPでエスケープするaddlashes関数、addslashesエスケープを使用するセキュリティ原則の分析

この記事の例では、PHP でエスケープする addslashes 関数を使用するセキュリティ原則の分析について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

まずはECshopでaddlashes_deepのプロトタイプを見てみましょう

コードをコピーします コードは次のとおりです:
function addedlashes_deep($value) {
If (空($value)) {
return $value // 空の場合は直接戻ります;
} その他 {
return is_array($value) ? array_map('addslashes_deep', $value):addslashes($value);
} } //すべての配列要素が走査されるまで配列を再帰的に処理します。
}

addlashes_deep 関数自体には何も問題はありませんが、使用する際には注意が必要です
今日、たまたまインターネット上でこの機能を使用した BUG インジェクションの脆弱性について投稿している人を見かけました
この関数は、コールバック関数 addlashes を参照するときにのみデータの値をエスケープします。そのため、この処理中にユーザーが特定の処理のために配列のキーを参照すると、addslashes_deep によって $key インジェクションが発生する危険性があります。同時に、キー値をエスケープするか、使用時にキーの内容を明示的に引用しないように関数を変更できます。

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

phpのaddslashes()関数の目的

addslashes -- バックスラッシュを使用して文字列を引用します

stringaddslashes ( string str )

データベースクエリステートメントなどの特定の文字の前にバックスラッシュを追加した文字列を返します。これらの文字は、一重引用符 (')、二重引用符 (")、バックスラッシュ (\)、および NUL (NULL 文字) です。

addslashes() の使用例は、データベースにデータを入力する場合です。たとえば、挿入O'reilly という名前をデータベースに追加するにはエスケープする必要があります。ほとんどのデータベースではエスケープ文字として \ が使用されます。これにより、PHP 命令 magic_quotes_sybase が on に設定されている場合、追加の \ を挿入せずにデータがデータベースに挿入されます。 ' を挿入するときに ' がエスケープされることを意味します

デフォルトでは、PHP 命令の magic_quotes_gpc がオンになっており、主にすべての GET、POST、COOKIE データに対して addlashes() を自動的に実行します。エスケープされた文字列に対しては addlashes() を使用しないでください。これにより二重レベルのエスケープが発生するため、関数 get_magic_quotes_gpc() を使用してこの状況を検出できます。

アドスラッシュをエスケープした後に正常に抽出できない場合はどうすればよいですか

addcslashes を使用してエスケープされた文字列をデク​​ォートする必要があるかどうかを確認してください。これをデコードするには、stripcslashes 関数を使用できます。


http://www.bkjia.com/PHPjc/904929.html

tru​​ehttp://www.bkjia.com/PHPjc/904929.html技術記事 PHP での addslashes 関数のエスケープの使用のセキュリティ原則の分析 Addslashes のエスケープ この記事では、PHP での addslashes 関数のエスケープの使用のセキュリティ原則の分析について説明します。みんなのためにみんなでシェアしましょう...
関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート