ホームページ  >  記事  >  バックエンド開発  >  PHPで関数を使用する場合の注意点

PHPで関数を使用する場合の注意点

WBOY
WBOYオリジナル
2016-06-13 13:12:23798ブラウズ

php
で関数を使用する場合の注意事項

????????? php には extract() という関数があり、これを使用すると、誤って使用するとセキュリティ上の問題が発生する可能性があります。

抽出定義が書き込まれました
PHP extract() 関数は、配列から現​​在のシンボル テーブルに変数をインポートします。

配列内の各要素について、キーは変数名に使用され、キーは変数値に使用されます。

2 番目のパラメーターの型は、変数が既に存在し、配列内に同じ名前の要素が存在する場合に、extract() 関数がそのような競合を処理する方法を指定するために使用されます。

この関数は、正常に設定された変数の数を返します。

? 一般に、2 番目のパラメータを設定するのが面倒なので、実際にはこの関数の隠蔽により、その有害性が無視されることが多く、その結果、ハッカーが通過してしまいます。配列の要素の制御または偽造により、特定の既存の変数が直接上書きされる可能性があり、ローカル インクルージョンの脆弱性、SQL インジェクションの脆弱性 (この関数を介して変数チェックを簡単に回避できます) など、さまざまな問題が発生する可能性があります。セックスの隠蔽、多くの人はそれを無視します。わかりやすい例

???

暗雲に関するレポートが書きました
http://www.wooyun.org/bugs/wooyun-2010-03990

? これは phpcms の問題であり、phpcms v9 コードを確認したところ、extract が誤って使用されている箇所が多くありました。これはプログラマーの注目に値する問題です。 ?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。