-
- //PHPサイト全体のアンチインジェクションプログラム、このファイルを公開ファイルにrequire_onceする必要があります
- //magic_quotes_gpcのステータスを判断する
- if (@get_magic_quotes_gpc ()) {
- $_GET = 秒 ( $_GET );
- $_POST = 秒 ( $_POST );
- $_COOKIE = 秒 ( $_COOKIE );
- $_FILES = 秒 ( $_FILES );
- }
- $_SERVER = 秒 ( $_SERVER );
- function sec(&$ array) {
- //配列の場合、配列を走査して再帰的に呼び出します
- if (is_array ( $array )) {
- foreach ( $array as $k => $v ) {
- $ array [$k] = sec ( $v );
- }
- } else if (is_string ( $array )) {
- //addslashes 関数を使用して処理します
- $array =addslashes ( $array );
- } else if (is_numeric ( $array )) {
- $ array = intval ( $array );
- }
- return $array;
- }
- //整数フィルター関数
- function num_check($id) {
- if (! $id) {
- die ( 'パラメータを空にすることはできません!' );
- } //空かどうかの判定
- else if (inject_check ( $id )) {
- die ( 'illegal pattern' );
- } // インジェクションの判定
- else if ( ! is_numetic ( $id )) {
- die ('不正なパラメータ');
- }
- //数値判定
- $id = intval ($id);
- //整数化
- return $id;
- }
- //文字フィルターfunction
- function str_check($str ) {
- if (inject_check ( $str )) {
- die ( 'illegalparameter' );
- }
- //インジェクション判定
- $str = htmlspecialchars ( $str );
- // htmlを変換
- return $str;
- }
- function search_check($str) {
- $str = str_replace ( "_", "_", $str );
- //「_」を除外
- $str = str_replace ( "%" , "%", $ str );
- //"%" を除外
- $str = htmlspecialchars ( $str );
- //html を変換
- return $str;
- }
- //フォームフィルター関数
- function post_check($ str, $min, $max) {
- if (isset ( $min ) && strlen ( $str ) < $min) {
- die ( '最小 $min バイト' );
- } else if (isset ( $max ) && strlen ( $ str ) > $max) {
- die ( '$max バイトまで' );
- }
- returntripslashes_array ( $str );
- }
- //アンチインジェクション関数
- function inject_check($sql_str) {
- return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $sql_str );
- // フィルタリングしてインジェクションを防止します
- }
- functionstripslashes_array( &$array) {
- if (is_array ( $array )) {
- foreach ( $array as $k => $v ) {
- $array [$k] =tripslashes_array ( $v );
- }
- } else if (is_string ( $array )) {
- $array =tripslashes ( $array );
- }
- return $array;
- }
- ?>
コードをコピー
|