経緯
問題と危険性、対応方法についてきれいにまとまっていたので、自分のために要約した。
元記事
7 Web Security Mistakes to Avoid (As a Developer) - DEV Community
内容の要約
頭使うのが嫌だったので、chatGPT使って要約させた。
一発では無理だったので、査読していい感じの要約になるように何回か指示出した。
chatGPTの要約内容
この記事では、Web開発者が避けるべき7つの一般的なWebセキュリティ上のミスについて詳しく説明されています。
不適切な認証と認可 - この問題は、パスワードの保管方法やアクセス許可の管理が適切に行われていない場合に発生します。開発者は、パスワードをハッシュ化し、ユーザーによるアクセスを制限するために必要なアクセス許可を適切に管理する必要があります。
脆弱なパラメーター検証 - 攻撃者は、Webアプリケーションに送信された入力値を悪意のあるコードに置き換えることで、システムに侵入することができます。開発者は、入力値を検証し、適切なエラーメッセージを表示することによって、この問題を回避できます。
クロスサイトスクリプティング(XSS) - この問題は、攻撃者がWebアプリケーションのページにスクリプトを埋め込んで、ユーザーの情報を窃取することができるというものです。開発者は、入力値をエスケープすることによって、この問題を回避することができます。
不十分な暗号化 - 開発者は、HTTPSを使用して通信を暗号化することによって、データの安全性を確保する必要があります。暗号化が不十分な場合、攻撃者は通信を傍受してデータを盗むことができます。
適切なログアウト手順の欠如 - 開発者は、ユーザーがログアウトした場合にセッションを終了するように設定する必要があります。ログアウトしていない場合、攻撃者はユーザーのセッションをキャプチャし、Webアプリケーションにアクセスすることができます。
セッション管理の欠如 - 開発者は、セッションIDを暴力的に推測されることから保護する必要があります。セッションIDが不正に使用されると、攻撃者はWebアプリケーションにアクセスし、データを盗むことができます。
セキュリティ更新の欠如 - 開発者は、Webアプリケーションにセキュリティ更新を適用する必要があります。セキュリティ更新がない場合、既知の脆弱性に対して攻撃者が悪用することができます。
これらの問題を回避するために、開発者は次の手順を実行する必要があります。
- パスワードの保管方法とアクセス許可の管理を適切に行う。
- 入力値の検証とエラーメッセージの表示を行う。
- 入力値をエスケープすることによって、XSSを回避する。
- HTTPSを使用して通信を暗号化する。
- ユーザーがログアウトした場合にセッションを終了するように設定する。
- セッションIDを暴力的に推測されることから保護する。
- Webアプリケーションにセキュリティ更新を適用する。
Webセキュリティは、Web開発者が考慮する必要がある重要なトピックの1つです。この記事の7つのミスを回避することによって、Webアプリケーションのセキュリティを向上させることができます。
所感
だいたいいつも気をつけていることだが、セッションIDを暴力的に推測されることから保護する。
って、どこまでやったらいいのかよく分からんよな。。。
よく、ソルト化して分かりづらくするって手法があるけど、それでも万全とは言えないのが、辛い。
セキュリティをどこまで締めるのは、時代によって変わってる気がする。
あと、情報が保存される場所を意識しているかが重要に感じた。
アクセス可能な人が誰かを特定できたりしないと、考慮外から情報が漏れるってのが、理解できた。