質問: 意図的に間違ったHTTPレスポンスコードを返す? 私は簡単なREST APIを書いています、そして私は私のモバイルクライアントだけにアクセスを制限したいです。言い換えれば、悪意のあるユーザーが、不正なPOST要求を行うためにcurlを使用する。 もちろん、これは不可能です。ただし、ハッカーが成功するのを困難にする特定の対策があります。現在のところ、私はすべての要求をクライアント側に格納された秘密鍵で暗号化しています(明らかにこれは理想的ではありませんが、iOSアプリのリバースエンジニアリングの困難さが最も決定的なハッカー以外のすべてを阻止します)。 私が持っていた一つの簡単なアイデアは、不正なリクエストに対して間違ったHTTPレスポンスコードを返すことです。 「401 Unauthorized」を返すのではなく、なぜ返さないのか。 「305 Use Proxy」、つまり意図的に混乱している。誰もがこれをやることについて考えたことがありますか?
回答: これはあいまいさによるセキュリティです。つまり、あまりセキュリティを提供しないということです。あなたが提案している解決策は攻撃者を遅くするだけで、彼らが彼ら自身のクライアントを使用することを防ぎません。 実際、実装によっては、リクエストを暗号化する方法によって、暗号システムの他の部分への攻撃が発生し、アプリケーションのセキュリティが低下する可能性があります。許可されていないクライアントがそれらにアクセスするのを防ぐことを試みるよりも、API関数自体を保護する(つまり、それらをペンテストしてSqlインジェクションのような攻撃から保護する)ことを試みるほうがよいでしょう。