多くのセキュリティ関連の問題と同様に、それは微妙な答えです.kolossus は良い概要を提供します.
攻撃者が API をどのように侵害する可能性があるか、およびセキュリティ違反がいくつ発生するかを理解するのに役立ちます。
ほとんどのセキュリティ侵害はバグや見落としが原因であり、攻撃者はそれらを探します。API を危険にさらそうとする攻撃者は、まず API に関する情報を収集しようとします。これは API であるため、おそらく詳細な使用方法のドキュメントを公開しているはずです。攻撃者はこのドキュメントを使用して、さまざまな方法でサイトをクラッシュさせたり (運がよければ、より多くの情報を公開したり)、予期しない方法で反応したりします。
攻撃者には十分な時間があり、あらゆる手段を試すように攻撃をスクリプト化するものと想定する必要があります。時間に制限がない泥棒が家中を歩き回り、すべてのドアと窓を試し、すべての試みから学習するロック ピックを使用するように。
したがって、API が のようなメソッドを公開し、getUserInfo(userid)
userID が整数である場合、攻撃者はスクリプトを作成して 0 から上に向かって反復し、何人のユーザーがいるかを調べます。彼らは負の数を試しますmax(INT) + 1
. これらすべてのケースでアプリケーションから情報が漏洩する可能性があり、開発者が特定のエラーを処理するのを忘れた場合は、意図したよりも多くのデータが公開される可能性があります。
API に特定のデータへのアクセスを制限するロジックが含まれている場合 (たとえば、フレンド リスト内のユーザーに対して実行が許可されているgetUserInfo
場合)、攻撃者はバグや見落としのためにいくつかの数字で幸運に恵まれる可能性があり、攻撃者はその情報が彼は有効なユーザーに関連付けられているため、アプリケーションの設計方法のモデルを構築できます。これは、すべてのロックが 1 つのメーカーのものであることを知っている泥棒と同じです。
これ自体は、攻撃者にとって何の利点もないかもしれませんが、攻撃者の生活を少しだけ楽にしてくれます。
UUID やその他の無意味な識別子を使用する努力を考えると、攻撃者にとって物事を難しくする価値があると思われます。もちろん、これは最も重要な考慮事項ではありません。おそらく、攻撃者から API を保護するためにすべきことのトップ 5 にはなりませんが、役に立ちます。