セキュリティーについて
最近webアプリを作成した過程で、セキュリティーの重要性に気づいたので学んだことのアウトプットとして書いてみようと思います。
対策するべきセキュリティー
- DoS/DDoS攻撃
- CSRF(クロスサイトリクエストフォージェリ)
- XSS(クロスサイトスクリプティング)
- SQLインジェクション
Dos/DDoS攻撃
ウェブサイトなどに対して大量のアクセスやデータを送りサーバーを停止させるサイバー攻撃
DoS(Denial of Servece Attack)
1つのIPから大量のアクセスを行う。
DDoS(Distributed Denial of Service Attack)
複数のIPから大量のアクセスを行うことである。
対策
- 特定のIPアドレスからのアクセスを遮断する
- CDNを使用する。使用することでサーバーへの負担を分散させる。
- ツールを使用する。
CSRF(クロスサイトリクエストフォージェリ)
攻撃者が正規のユーザーのアカウントを不正に使用して、Webアプリケーション上で操作を行う攻撃である。攻撃者の悪意あるページを訪れることで、イベントが発生し正規ユーザーのCookie情報などが盗まれてしまう。これにより正規ユーザーが望まない操作が行われてしまう。(カード決済、コメント投稿...etc)
対策
- フォームタグを使用する際は、必ずトークンを発行するようにコードを書く
- ツールを使用する
XSS(クロスサイトスクリプティング)
攻撃者が仕込んだJavaScriptがユーザーが訪れるたびにイベントが起動して、ユーザー情報などが盗まれてしまう。
対策
- htmlspecialchars関数を使用して、特殊文字をエスケープ処理する必要がある。
- ツールを使用する。
SQLインジェクション
脆弱性のあるフォームにSQLを発行する文字列を投稿することで、情報を取得したり、データベース内のテーブルを操作されてしまう。
対策
- PDOパラメーターバインディングを使用して対策する。
- ツールを使用する。
ツールについて
- IDS/IPS
- WAF
などを使用することで、脆弱性を狙った攻撃を対策することができる。
終わりに
セキュリティーはかなり奥が深いなと感じました。まだまだ書きれていない部分があるので、今後も書いていこうと思います。ここまで見てくださりありがとうございます。
参考サイト
- 3分でわかるXSSとCSRFの違い
https://qiita.com/wanko5296/items/142b5b82485b0196a2da - 脆弱なサイトと罠サイトを実際に作って学ぶ『CSRF』とその対策
https://www.hypertextcandy.com/csrf-hands-on-tutorial - ウェブアプリの脆弱性を狙うXSSとCSRF その仕組みの違いと対策
https://ascii.jp/elem/000/004/015/4015004/