Web Programming

改竄 JS(かいざん JS)

「改竄 JS(かいざん JS)」とは、本来のWebページで動作しているJavaScriptコードを改変(改ざん)して、意図しない動作をさせるためのスクリプトのことを指します。

つまり、ユーザーがWebブラウザ側で自由にJavaScriptを書き換えたり追加したりして、本来の入力チェックや制御をすり抜ける行為です。

なぜ「改竄」できるのか?

JavaScriptはクライアント(ユーザーのブラウザ)側で動作します。

ユーザーはブラウザの開発者ツールを使って、読み込まれたJavaScriptコードを無効化したり書き換えたりできます。

また、独自のJavaScriptを実行することも可能です(例:コンソールに直接打ち込む、ブックマークレット、外部スクリプトを読み込む)。

具体例

例1: 入力チェックを削除

本来のHTMLフォームには次のようなチェックがあるとします:

JavaScript

if (age < 18) {
	alert("18歳未満は登録できません");
	return false;
}

攻撃者はブラウザの開発者ツールで、このコードを削除したりreturn false;return true;に書き換えて送信すれば、未成年でも送信できてしまいます。

例2: 改竄した送信

ブラウザのコンソールで次のように直接フォーム送信:

JavaScript

document.querySelector("form").submit();

→ 本来のチェック関数をすべてスキップして送信できる。

例3: 外部から勝手に送信

cURL や Python の requests を使って、自分でHTTPリクエストを作成して送信する。

→ JavaScript自体が実行されないので、HTMLやJSのバリデーションは全て無視される。

なぜ危険なのか?

HTMLの属性(required, min, max)やJavaScriptによるバリデーションは「ユーザーが間違えないように手助けするため」のもの。

攻撃者は簡単にバイパスできるので、サーバー側のチェックが必須です。