一般的なインジェクション防止には、PHP の addlashes 関数を使用します。
Phpコード
$_POST = sql_injection($_POST);
$_GET = sql_injection($_GET);
function sql_injection($content) { _magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] =addslashes($value);
addlashes($content) ; $sql_str); // フィルタリング }PHP コード
/**
* 関数名: inject_check()
* 関数の機能: 送信された値に SQL インジェクション文字が含まれているかどうかを検出し、インジェクションを防止し、サーバーのセキュリティを保護します
* パラメーター: $sql_str: 送信された変数
* 戻り値 : を返しますテスト結果、真か偽
*/
function verify_id($id=null) {
if (!$id) { exit('パラメータが送信されていません!'); } // null かどうかの判定
elseif (inject_check($id)) { exit('送信されたパラメータが不正です!') } // インジェクション判定 elseif (! / / 数値判定
/**
* 関数名: verify_id()
* 関数: 送信されたID値が正当かどうかを検証する
* パラメータ: $id: 送信されたID値
* 戻り値: 処理されたIDを返す
*/
function str_check ( $str ) {
}
$str = str_replace("_", "_", $str); // '_' を除外します
$str = str_replace("%", "%", $str); // '% を除外します' フィルタリング
return $str;
}
Php コード
/**
* 関数名: post_check()
* 関数: 投稿された編集コンテンツを処理する
* パラメータ: $post: 投稿するコンテンツ
* 戻り値: $post: フィルターされたコンテンツを返す
*/ function post_check($post) {
if (!get_magic_quotes_gpc()) { // magic_quotes_gpc がオープンかどうかの判定
$post = addlashes($post) // magic_quotes_gpc がオープンでない場合は送信されたデータをフィルタリングする }
} $post = str_replace("_ ", "_", $post); // '_' を除外します
$post = str_replace("%", "%", $post) // '%' を除外します
$post = nl2br($post); // 変換を入力します $ post = htmlspecialchars ($ post); // HTML マーキング変換
}