3

私はColdFusion8とjQuery1.7.2を使用しています。

CFAJAXPROXYを使用してデータをCFCに渡します。そうすることで、JSON配列(引数コレクション)が作成され、URLを介して渡されます。かなりの量のデータが渡されるため、文字列は非常に長くなる可能性があります。

私が作業しているサイトには、URLクエリ文字列の長さを250文字に制限する既存のコードがあります。これは、クエリ文字列の長さをテストすることにより、application.cfmファイルで実行されます。クエリ文字列が250文字を超える場合、リクエストは中止されます。これの目的は、ハッカーやその他の悪意のあるコードがURL文字列を通過しないようにすることでした。

クエリ文字列を使用してURLでJSON配列を渡すようになったので、Ajaxリクエストが非常に頻繁に中止されていることがわかりました。

コードから「<>」タグを削除したり、CFQUERYPARAMを使用したりするなど、他にも多くのセキュリティ対策を講じています。

私の質問は、セキュリティのためにURL文字列の長さを制限するのは良い考えなのか、それとも単に効果がないのかということです。

4

4 に答える 4

4

URIの長さとセキュリティの間に相関関係はまったくなく、次の問題があります。

  1. ユーザーエージェントに提供する情報の量を「知る必要のある根拠」に制限する。これには、実行するアプリケーションサーバーの種類と関連する規則、実行するWebサーバーと関連する規則、ホストマシン上のオペレーティングシステムなどが含まれます。これらは本質的に脆弱性と見なすことができるものです。
  2. これらの脆弱性を悪用することによる影響を軽減します。つまり、パッチの導入、正しい構成の確保などです。

上でほのめかしたように、Web層では、これはGET(あなたの懸念)だけでなく、HTTPリソースに対する他のほぼすべての操作に対するPOST、PUT、DELETEもカバーします。

于 2012-04-19T16:50:34.380 に答える
2

これをEvikの答えに移動しました-

入力が適切にサニタイズされている場合、これは(せいぜい)完全に不要のようです。それが唯一の防御であると仮定すると、賢い誰かが「小さな出入り口によるセキュリティ」防御をすぐに打ち負かすことができると確信しています。

OWASPには、Webセキュリティに関する優れた適切なガイドラインがいくつかあります。私が読んだ限りでは、URLのサイズを制限することはリストにありません。詳細については、https ://www.owasp.org/index.php/Top_10_2010-Mainを参照してください。

また、これは国際化を難しくするか、おそらく不可能にするというHereblurのコメントをエコーし​​たいと思います。

于 2012-04-19T16:52:39.170 に答える
1

私はColdFusion開発者ではありません。しかし、他の言語でも同じだと思います。

少しだけ助かると思います。悪意のあるコードまたはSQLインジェクションの問題は、アプリケーションで処理する必要があります。

クエリ文字列値の長さを制限する方が安全であり、ハッカーにとってより困難になることに同意します。ただし、POSTデータではこれを行うことはできません。そしてそれはいくつかの機能を制限します。たとえば、1つのutf-8文字の場合、エンコード後に9文字かかる場合があります。つまり、英語以外の文字を27文字しか入れられないということです。

于 2012-04-19T16:09:59.430 に答える
1

制限する唯一の理由は、パフォーマンスとDOS攻撃に関係しています。セキュリティ自体ではありません(ただし、DOSはサーバーをダウンさせることによるセキュリティの脅威です)。WebサーバーとAppサーバー(CFを含む)を使用すると、POSTデータのサイズを制限して、非常に大きなファイルのアップロードによってサーバーが劣化しないようにすることができます。URLデータが大量の場合、サーバーが解析、処理、書き込みなどに苦労するため、リクエストが長時間実行される可能性があります。

したがって、ここではそのようなことに関連するいくつかの適度なリスクがあります。NTの時代には、IIS 3には、URLの長さを制限することによって「ロックダウン」された多くの欠陥がありましたが、それらの時代はずっと昔のことです。この問題を詳しく調べる前に最初に検討する、ぶら下がっている果物を表すエクスプロイトははるかに多くあります。もちろん、調査している人々に特定の問題がぶら下がっていると感じない限り(長いURLを意味します:)。

于 2012-04-19T19:47:58.880 に答える