2

したいのですREGEXフィルター/ matchは、リモートファイルインクルードに使用QUERY_STRINGできるtheesephp|data|ftp|http|..|/|://やその他の文字などのパラメータが含まれています。

いつもありがとうございました:

PS:これはhtaccessで行う方が良いと思いますが、今は正規表現が必要です。

4

2 に答える 2

3

それがあなたのセキュリティであるならば、それは壊れそうです。何かを含める/要求する前に、ホワイトリストに登録するか、ローカルファイルの存在を確認してください。さらに良いことに、外部変数に含めるファイルに直接影響を与えないようにしてください。

于 2011-07-13T10:51:43.163 に答える
2

リモートファイルインクルードを防ぎたい場合は、ストリームラッパーを無効にするだけです。

  • allow_url_include-このオプションを使用すると、次の関数でURL対応のfopenラッパーを使用できます:include()、include_once()、require()、require_once()。

およびその他のURL対応機能の場合

  • disable allow_url_fopen-このオプションは、ファイルのようなURLオブジェクトへのアクセスを可能にするURL対応のfopenラッパーを有効にします

クエリパラメータがURLであるかどうかを確認する場合は、parse_urlを使用できます。

if (parse_url($url) === FALSE) {

またはfilter_*関数を使用します

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
于 2011-07-13T11:03:29.330 に答える