1

私はこのようなリンクを持っています:

www.localsite.dev/posts/332635955335419755

これはかなりうまく機能し、ID=332635955335419755の投稿を見ることができます

しかし、よりきれいなURLのURLにテキストの一部を追加しようとすると...特殊文字が含まれている場合、Codeigniterは404ページのエラーを表示します...実際には、XSSなどを実行しようとしない限り発生しません。 .私はXSSなどを取得せず、404ページのエラーをスローします。IDの後のテキストを削除すると、正常に機能します...

www.localsite.dev/posts/332635955335419755/<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>

では、スラッグにこれらの文字が含まれている場合、404エラーが発生しないようにするにはどうすればよいですか?

4

2 に答える 2

1

あなたの質問は、実際には 404 を防ぐ方法ではなく、安全な URL スラッグを作成する方法に関するものです。

ユーザー ガイドの次のページを参照してください。 xss_clean()and / orを使用sanitize_filename()して、文字列から危険な文字を取り除くことができます。データベースにデータを挿入する前、またはスラッグが作成されたときに、おそらくこれを行う必要があります。

メソッドもありますが、url_title()それが xss 文字列をどのように処理するのかわかりません。理想的には、3 つの方法すべてを組み合わせて使用​​することをお勧めします。テストしてみてください。

それが完了したら、$config['permitted_uri_chars']これら 2 つのセキュリティ メソッドが通過できるように を変更する必要があるかもしれませんが、少なくともより安全になるはずです。

于 2012-04-28T16:13:33.740 に答える
0

config.php の変更

  $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

  $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-<>/';

しかし - あなたは本当に本当にそれをしたくない - それは大規模なセキュリティの問題にあなたを開きます. 問題へのアプローチを再考する必要があります。テキストに flash_message を使用するか、_POST を使用することをお勧めします。URL を使用してそのようなテキストを処理すると、問題やエラーが発生するだけです...

于 2012-04-28T12:06:49.423 に答える