Web開発におけるセキュリティ対策【現役エンジニアが解説】

PROGRAM

今回は、Web開発におけるセキュリティ対策について、現場の視点で簡単に解説していきます。

インジェクション

インジェクション攻撃では攻撃者が悪意のある文字列を挿入します。

そのことによって、SQLクエリやOSコマンドが不適切に実行されます。

入力された文字列のチェックや特殊文字のエスケープが有効な対策となります。

認証とセッション管理

セッションIDは漏洩すると致命的です。

セッションIDは悪用されると、なりすまし行為ができてしまうためです。

ログイン時のセッションIDのリセットやセッションIDのクッキーのみでの利用が有効な対策です。

オープンリダイレクト問題

オープンリダイレクト問題はパラメータによって意図しないリダイレクト先に遷移することです。

具体的には、リダイレクト先に偽のURLを指定されたリンクをアクセスすると正規のサイトから偽のサイトに遷移します。

有効な対策としては、リダイレクト先のURLのパラメータをきちんとチェックすることが求められ、リダイレクト先を限定させます。

クロスサイトスクリプティング

クロスサイトスクリプティングは被害者のブラウザ上でスクリプトを実行する行為です。

例えば、JavaScriptをHTMLに埋め込ませ、被害者が攻撃者にデータを送信させるような罠を作ります。

有効な対策としては、JavaScriptをHTMLに埋め込ませないために、特殊文字のエスケープを行うことが考えられます。

クロスサイトリクエストフォージェリ

クロスサイトリクエストフォージェリは被害者に他サイトから会員制サイト等に特定の処理をさせる行為です。

例として、会員制のページでログイン済みの利用者をターゲットに、攻撃者の望む処理をさせるような罠のことです。

有効な対策としては、処理をする前にサーバ側からトークンを付与し、同じトークンで処理を依頼しているかどうか確認するような作りにすることが考えられます。