Web関連
セキュリティ関連のメモ
CSRF(クロスサイトリクエストフォージェリ)/XSRF
オンラインサービスを利用するユーザーがログイン状態を保持したまま悪意のある第三者の作成したURLなどをクリックした場合などに、本人が意図しない形で情報・リクエストを送信されてしまうことを意味します。 サービス提供者が考えるべき対策の一つに、どこから送られたリクエストなのか。このリクエストはユーザーが送ったものなのかを照合するシステムや、送信元のURLに対する照合、リクエストを送る時のパラメータに対する照合など、必要に合わせて適用し、脆弱性を排除しておくことが求められます。
CORS(Cross-Origin Resource Sharing)
ブラウザがオリジン(HTMLを読み込んだサーバのこと)以外のサーバからデータを取得する仕組みです。各社のブラウザには、クロスドメイン通信を拒否する仕組みが実装されています。れは、クロスサイトスクリプティングを防止するためです。
JSON Web Token
JSON Web Token(JWT)はHTTP認証ヘッダやURIクエリパラメータなどスペースに制約のある環境を意図したコンパクトな表現形式である。JWTの推奨される発音は, 英単語の"jot"と同じである.
- JWT draft
- Yahooにおける活用事例
- [JSON Web Tokenを理解する](https://scrapbox.io/fendo181/JWT(JSON[/ Web]Token)%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B%E3%80%82)
- JWTについて簡単にまとめてみた
Please Stop Using Local Storage
JWTでは、有効期限を短く設定することをお勧めします。WebSocketを使用している場合は、(たとえば)10分の有効期限でJWTを発行し、ユーザーがまだ接続してログインしている場合は8分ごとに自動的に新しいものを再発行することもできます。その後、ユーザーがログアウトするか切断されたとき。最後に発行されたJWTはわずか10分で無効になります(この時点で攻撃者にとってはまったく役に立たなくなります)。
OAuth2.0
AES(Advanced Encryption Standard)
共通鍵暗号アルゴリズムである。128ビット、192ビット、256ビットの鍵長が使える。
- [Wiki](https://ja.wikipedia.org/wiki/Advanced[/ Encryption]Standard)
XST(Cross-Site Tracing)
Webサーバの HTTP Trace 機能と XSS を組み合わせて、クライアントの情報を盗む。
HTTP TRACEメソッドはHTTPヘッダも含めてすべての情報をクライアントに表示するデバッグの機能。この機能とXSSを組み合わせて、cookie情報やBASIC認証のパスワードなどを盗む。
Tabnabbing
タブナビング(Tabnabbing)とは、Webブラウザーのタブ表示機能を利用した[フィッシング http://it-words.jp/w/E38395E382A3E38383E382B7E383B3E382B0.html]の一種で、ブラウザーのアクティブでないタブの中身をユーザーが気づかないうちにSNSや銀行などの偽ログインページに書き変えてしまうという攻撃手法。