php アンチインジェクション

Jun 23, 2016 pm 02:35 PM

PHP Web サイトでの SQL インジェクションを防ぐにはどうすればよいですか?

Web サイトの運用セキュリティは、すべての Web マスターが考慮すべき問題であることは間違いありません。ご存知のとおり、ほとんどのハッカーは SQL インジェクションを使用して Web サイトを攻撃します。これが、最もオリジナルな静的な Web サイトが最も安全であると言われる理由です。 今日は、Web サイトへの SQL インジェクションを防ぐための PHP インジェクションのセキュリティ仕様について説明します。

現在、主流のウェブサイト開発言語は依然として php です。それでは、php ウェブサイトでの SQL インジェクションを防ぐ方法から始めましょう:

php インジェクションのセキュリティ防止 上記のプロセスを通じて、php インジェクションの原理とテクニックを理解することができます。もちろん、対応する防止方法も策定できます。
1 つ目はサーバーのセキュリティ設定です。ここでは主に php+mysql のセキュリティ設定と Linux ホストのセキュリティ設定を説明します。 php+mysql インジェクションを防ぐには、まず、magic_quotes_gpc を On に設定し、display_errors を Off に設定します。id 型の場合は、intval() を使用して、コード
$id=intval($id) を使用して整数型に変換します。 );
mysql_query=”select *from example where articieid='$id'”; または、次のように記述します: mysql_query(”SELECT * FROMarticle WHERE Articleid=”.intval($id).””)

文字タイプの場合は、addslashes () フィルターを使用して、次のように「%」と「_」をフィルターします。
$search=addslashes($search);
$search=str_replace("_","_",$search);
$search=str_replace ("%","%",$search);
もちろん、PHP の一般的なアンチインジェクション コードを追加することもできます:
/****************************
PHP ユニバーサル アンチインジェクション セキュリティ コード
手順:
渡された変数に不正な文字が含まれているかどうかを確認する
$_POST など, $_GET
機能:
抗注射
*****************************/
//フィルタリングされる不正な文字
$ArrFiltrate=array("'" ,";","union");
//エラー発生後にジャンプするURL。入力しない場合は、前のページがデフォルトになります
$StrGoUrl="";
//配列に値があるかどうか
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 "alert(/"Neeao プロンプト、不正な文字/" );";
if (empty($StrGoUrl)){
echo "history.go(-1);";
}else{
echo "window.location=/"".$StrGoUrl."/";" ;
}
exit;
}
}
?>
/* **************************
checkpostandget.phpとして保存します
そして、各phpファイルの前にinclude("checkpostandget.php")を追加します。
**************************/

さらに、管理者のユーザー名とパスワードは md5 で暗号化されており、PHP インジェクションを効果的に防止できます。
サーバーとmysqlもいくつかのセキュリティ対策を強化する必要があります。
Linuxサーバーのセキュリティ設定の場合:
パスワードを暗号化するには、「/usr/sbin/authconfig」ツールを使用してパスワードシャドウ機能をオンにし、パスワードを暗号化します。
重要なファイルへのアクセスを無効にし、Linux コマンド インターフェイスに入り、プロンプトで次のように入力します:
#chmod 600 /etc/inetd.conf //ファイル属性を 600 に変更します
#chattr +I /etc/inetd.conf //ファイルが次のものに属していることを確認してください。 メインのファイルは root です
#chattr ?I /etc/inetd.conf // このファイルへの変更を制限します
su コマンドを使用してユーザーが root ユーザーに変更されることを禁止します
su 設定ファイルでは、これは /etc/pam.d/ ディレクトリです。 最初に次の 2 行を追加します。
Auth fully /lib/security/pam_rootok.so debug
Auth required /lib/security/pam_whell.so group=wheel
特殊なものをすべて削除しますaccounts
#userdel lpなどでユーザーを削除
#groupdel lp グループの削除を待つ
未使用のsuid/sgidプログラムをブロック
#find / -type f (-perm -04000 - o ?perm -02000 ) -execls ?lg {} ;

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

See all articles