明らかな3つの安全規則

ルール番号1。 すべての認証CookieをHttpOnlyにします



HttpOnlyフラグが設定されたCookieはブラウザコードには表示されませんが、サーバーにのみ送信されます。 実際には、クライアントからコンテンツを取得する必要はほとんどありません(何らかの理由でそのようなニーズがある場合は、認証アーキテクチャを再検討してください。おそらく何か問題があります)。 しかし、XSSを発見した攻撃者-そして、XSSをどこかでどこかに-承認CookieにHttpOnlyが存在しないことは、多くの喜びをもたらします。



ルール番号2。 ランダムキーで保護しながら、POSTを介してアクションを実行します



GETは情報を取得しています。 POST-アクションの実行。 これは単にパラダイムの美しさとコーシャの問題ではありません。ユーザーの明示的な参加なしにGETが実行されるため、実用的なセキュリティ問題です。ブラウザは疑わしいPOSTリクエストを必ず要求します。



たとえば、球状/ auth /ログアウトに移動してログアウトを実行すると、見えない画像<img src = "/ auth / logout">を見た各ユーザーが突然ログアウトされます。 そして、これは最も無害です。なぜなら、「/コメント/追加」、「/アイテム/投票」、さらには「/ admin / delete-all-these-users」という写真があるからです。 言語とフレームワークでPOSTとGETのデータが混在している場合(およびそのようなデータが多数ある場合)、アクションURLの要求タイプを常に確認してください。



また、リクエストソースのリファラーを確認するか、クライアントから送信されたリクエストのランダムキーをCookieの同じキーと比較することをお勧めします。



ルール番号3。 ブラウザを信頼しないでください



サーバー側では、あなたのサイトを破壊し、データの完全性を侵害し、あなたの妻を奴隷に売ろうとする最も嫌われている敵によって書かれた最初から最後の手紙まで、javascriptコードを常にすべてのように扱います。 さらに、時々これは本当にそうです。



いつも喜んでお手伝いしますが、

あなたのK.O.



All Articles