web-dev-qa-db-ja.com

URLエンコーディングの仕組み

私はWebセキュリティについて学んでいますが、URLエンコーディングについて非常に混乱しています。誰かが手助けできるなら、それは大きな助けになるでしょう。

PortSwiggerで、URL " http://127.0.0.1/admin "をエンコードすることで " http://127.0.0.1/%2561dmin "として使用できることを学びました'a'を '%61'にしてから、もう一度エンコードすると、%は "%2561"になります

ローカルコンピュータで試してみると、単一のURLエンコーディングが機能します " http://127.0.0.1/%61dmin "

しかし、二重URLエンコードは機能しません " http://127.0.0.1/%2561dmin "

だから私はサーバーがURLをデコードする必要がある時間をどのように知っているかについて混乱しています、そしてこれはいつもそうです、またはそれが私のローカルホストや私が試した他のいくつかの場所で機能しないのでいくつかのケースでしか機能しません.

3
Anni

だから私はサーバーがURLをデコードする必要がある時間をどのように知っているかについて混乱しています

常に一度だけ。これは他のエンコーディングにも当てはまります。つまり、メールのバイナリデータはbase64またはquoted-printableでエンコードされますonce、unicodeはエンコードされますonce utf-8でエンコードされ、HTMLエンコーディングは適用済みonce HTMLなどの<などの文字に.

3
Steffen Ullrich