-
-
/**************************** - 説明:
- 渡された変数に不正な文字が含まれているかどうかを判断します
- $_POST、$_GET など
- 機能: アンチ注射
- * *************************/
//フィルタリングされる不正な文字
- $ArrFiltrate=array("'", ";","union");
- //エラー発生後にジャンプする URL。入力しない場合は、前のページがデフォルトになります
- $StrGoUrl="";
- //に値があるかどうか。 array
- function FunStringExist($StrFiltrate, $ArrFiltrate){
- foreach ($ArrFiltrate as $key=>$value){
- if (eregi($value,$StrFiltrate)){
- return true;
- }
- }
- return false;
- }
// $_POST と $_GET をマージします
- if(function_exists(array_merge)){
- $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
- }else{
- foreach ($HTTP_POST_VARS as $key=>$value){
- $ArrPostAndGet[]=$value;
- }
- foreach($HTTP_GET_VARS as $key=>$value){
- $ArrPostAndGet[]=$value;
- }
- }
-
//検証開始
- foreach($ArrPostAndGet as $key=>$value){
- if (FunStringExist($value,$ArrFiltrate)){
- echo "";
- if (emptyempty($StrGoUrl)){
- echo " ";
- }else{
- echo "";
- }
- exit;
- }
- }
- ? >
-
-
コード
をコピーし、checkpostandget.php として保存し、それぞれの前に include("checkpostandget.php") を追加します。 php ファイル。
方法 2
-
-
/* すべての GET 変数をフィルター*/ - foreach ($_GET as $get_key=>$get_var)
- {
- if (is_numeric($get_var)) {
- $get[strto lower($get_key)] = get_int($get_var);
- } else {
- $get[strto lower($get_key)] = get_str($get_var);
- }
- }
- < ; p>/* すべての POST 変数をフィルターします*/
- foreach ($_POST as $post_key=>$post_var)
- {
- if (is_numeric($post_var)) {
- $post[strto lower($post_key)] = get_int($ post_var);
- } else {
- $post[strto lower($post_key)] = get_str($post_var);
- }
- }
/* フィルター関数*/
- // 整数フィルター関数
- function get_int($number)
- {
- return intval($number);
- }
- //文字列フィルター関数
- function get_str($string)
- {
- if (!get_magic_quotes_gpc()) {
- returnaddslashes($string) ;
- }
- return $string;
- }
- ?>
-
コードをコピー
|