動的なwebサイト構築に使用される言語は誰でも気軽に習得できるライトランゲージが主流です。
安易に開発できるためセキュリティを意識しないwebアプリケーションを開発してしまうことがおおくなります。
クロスサイトスクリプティング(XSS)やSQLインジェクションの対策を意識したコーディングを心がけたいものです。
[注意する事]
1.XSSやSQLインジェクション対策
特殊制御文字をエンティティ表記にする
< = < ( <)
> = > ( >)
" = " ( ")
' = ' ( ')
& = & ( &)
=  ( )
(↑半角スペース)
データベースに 'がある場合のエスケープ方法
mysqlの場合 \'
postgresの場合 ''
2.webアプリケーションからメールを送る際に気をつけること
・機種依存文字の変換をする
・半角カタカナに気をつける
・一行の文字数を気をつけること
半角70文字(全角35文字)~半角80文字(全角40文字)が一般的
・改行コードは\nが一般的
3.50音検索をする際に気をつける事
・50音で並べ替えは文字コードの種類などを考慮すること
・検索文字に濁点や破裂音を考慮すること
4.テストデータで含めるぺき文字列
・ 空のデータ
・ 通常データ
・ 限界値分析・同値分割
・ データ容量を超過するデータ(100,000文字程度の入力)
・ 半角カナのみで構成されたデータ
・ 半角カナが混在しているデータ
・ HTMLタグのみで構成されたデータ
・ HTMLタグが混在しているデータ
・ PHPスクリプトタグのみで構成されたデータ
・ PHPスクリプトタグが混在しているデータ
・ 'や;, SQL構文が混在しているデータ
・ 機種依存文字が含まれているデータ
---
[用語解説]
・クロスサイトスクリプティング(XSS)
動的にWebページでユーザが入力できるテキストボックスやブラウザのアドレス欄などを使用してサイト間を横断して悪意のあるスクリプトを混入させること
・SQLインジェクション(エスキューエルインジェクション)
アプリケーションのセキュリティ上の不備を利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースを不正に操作する攻撃方法のこと。
・SQL(エスキューエル、シークエル)
リレーショナルデータベース管理システム(RDBMS)でデータの操作や定義を行うためのデータベース問い合わせ言語のこと
コメントする