Sucuriは1月10日(米国時間)、「Bad Paths & The Importance of Using Valid URL Characters 」において、URL(Uniform Resource Locator)およびパスに安全な文字を使用する重要性について伝えた。安全ではない文字を使用した場合、さまざまなWebブラウザやWebサーバとの互換性の問題を引き起こす可能性があり、Webアプリケーションファイアウォールとの非互換性の問題にさえつながる場合があるという。

  • Bad Paths & The Importance of Using Valid URL Characters 

    Bad Paths & The Importance of Using Valid URL Characters 

URLまたはパスに含めると危険な文字が複数あるとして、潜在的な問題やセキュリティリスクを回避するために、エンコードするか回避する必要があると紹介されている。

具体的に使用すべきでない文字として「" < > # % { } | \ ^ ~ [ ] `」が挙げられている。これらの文字の中にはURLの区切り文字として使用されるため、区切り文字として間違って解釈されてしまう可能性があるという。加えて、これらの文字列は一部のプログラミング言語でコードのブロックを囲むために使用されたり、HTMLで属性を囲むために使用されたりる文字もあるため、サイバー犯罪者の攻撃につながる脆弱性になってしまうことも指摘されている。

また、予約文字も使用しないことが推奨されている。予約文字とは特別な意味を持つ文字とされ、特定の用途のために予約されている文字を指す。URLの構造を指定したり、区切り文字として使用されたりすることがあり、代表的な予約文字として「; / ? : @ & = + $ ,」が挙げられている。

これらの予約文字は、URLやパスで本来の用途以外の目的で使用する場合、必ずエンコードする必要があり、予約文字をパーセント記号(%)で置き換え、その後に対応するASCIIコードを16進数で記述することで解決できると説明されている。

URLおよびパスに使用すべき安全な文字も紹介されている。安全とされる主な文字は次のとおり。

  • 英数字:A~Z、a~z、0~9
  • ハイフン:-
  • ピリオド:.
  • アンダースコア:_
  • チルダ:~

安全ではない文字は使わず、予約文字を使用する時は必ずエンコードすることで多くのセキュリティや互換性の問題を回避することができる。今一度、紹介されている不適切な文字やエンコードされていない予約文字がURLやパスに含まれていないか、確認することが望まれる。