2

私がそうするとしましょう

http://site.com/something?url=http://lol.com/lol

することの利点(セキュリティなど)はありますか

'http://site.com/something?url=' . urlencode('http://lol.com/lol');

エンコードされていないバージョンの URL を渡すだけでなく、コード化されていないバージョンを渡すのではなく、GET 経由で渡されたものを urlencode する必要があるのはなぜですか (もちろん、url パラメーターに & または ? または = が含まれている場合は、間違いなくエンコードする必要があります...しかし、そうでないと仮定すると、なぜ私はそれらをエンコードします)

4

2 に答える 2

1

URL には特別な意味を持つ文字があります。これらの文字は、エンコードせずに渡すと、(文字が属する内部 URL ではなく) 外部 URL で特別な意味を持ちます。

たとえば、合格したい場合

http://example.com/foo?1=2&3=4

そして、それをエンコードしないと、次のようになります。

http://example.com/?url=http://example.com/foo?1=2&3=4

url is http://example.com/foo?1=2
3 is 4

そうでない場合、なぜそれらをエンコードする必要があるのですか

エンコーディングが必要かどうかを判断するには、渡すすべての URL を確認する必要があるためです。

Always エンコーディングは、ケースバイケースで決定するよりもはるかに簡単で、エラーが発生しにくくなります。

于 2012-10-03T15:57:54.180 に答える
0

URLにUnicode文字を使用する可能性がある場合、2番目のサンプルがかなり良いことを知っている限り.

于 2012-10-03T16:02:27.300 に答える