ホームページ  >  記事  >  バックエンド開発  >  PHP WebサイトでのSQLインジェクションを防ぐにはどうすればよいですか? 【優れた】

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

WBOY
WBOYオリジナル
2016-07-25 09:04:37947ブラウズ
Web サイトの運用セキュリティは、すべての Web マスターが考慮すべき問題であることは間違いありません。ご存知のとおり、ほとんどのハッカーは SQL インジェクションを使用して Web サイトを攻撃します。
最もオリジナルな静的ウェブサイトが最も安全です。今日は、Web サイトが
sql によってインジェクションされるのを防ぐための PHP インジェクションのセキュリティ仕様について説明します。
今日の主流の
ウェブサイト開発言語は依然としてphpなので、phpウェブサイトでのsqlインジェクションを防ぐ方法から始めましょう: Php
インジェクションのセキュリティ予防措置 上記のプロセスを通じて、私たちは
phpインジェクションの原理と方法を理解することができます。 もちろん、対応する防止方法を開発することもできます。
1つ目は、主に
php+mysqlのセキュリティ設定です。 Linux ホストのセキュリティ設定 。 php+mysql噴射を防ぐために、最初にmagic_quotes_gpconを最初に設定します。コードなど: $idintval($id);mysql_query"*fromexamplewherearticieid'$id'"; または次のように記述します: mysql_query(
"
)選択* FROMarticleWHEREarticleid
"
.intval($id).
"
")文字型の場合は、addslashes()を使用してフィルタリングし、その後、「%」と「_」をフィルタリングします例: $searchaddslashes($search);$searchstr_replace("_","_",$search);
$searchstr_replace("%","%",$search);もちろん、php ユニバーサルアンチインジェクションコードを追加することもできます: /***************************
PHP
ユニバーサルアンチインジェクションセキュリティコード
手順:
渡された変数かどうかを判断します$_POST
$_GET
などの不正な文字
が含まれています機能:
アンチインジェクション
************* * **** ********/
//フィルタリングされる不正な文字
$ArrFiltratearray("'",";", "union");//
エラー後にリダイレクトされる
URL、
未入力の場合、前のページがデフォルトになります
$StrGoUrl"";
//値があるかどうか配列内
functionFunStringExist($StrFiltrate,$ArrFiltrate){
feach($ArrFiltrateas$key>$value){if(eregi($value,$StrFiltrate)){returntrue;
}
}returnfalse;
}
//
merge
$_POST
$_GET
if(function_exists(array_merge)){
$ArrPostAndGetarray_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}その他{
feach($HTTP_POST_VARSas$key>$value){
$ ArrPostAndGet[]$value;}feach($HTTP_GET_VARSas$key>$value){
$ArrPostAndGet[]$value;
}
}
//
検証開始
feach($ ArrPostAndGetas$key>$value){
if(FunStringExist($value,$ArrFiltrate)){
echo"alert(/"Neeaoプロンプト、不正な文字/");";
if(empty($StrGoUrl)){
echo "histy.go(-1) ;";
}else{
echo "window.location/"".$StrGoUrl."/";";
}
exit;
}
}
?>
/* **************************
checkpostget.php
として保存し、各phpの前にを追加しますファイル include(checkpostget.php);以上です
**************************** **/
さらに、管理者のユーザー名とパスワードは md5 によって暗号化され、php のインジェクションを効果的に防ぐことができます。
サーバーとmysqlもいくつかのセキュリティ対策を強化する必要があります。
linuxサーバーのセキュリティ設定:
パスワードを暗号化し、「/usr/sbin/authconfig」ツールを使用してパスワードのshadow機能をオンにし、暗号化しますパスワード
重要なファイルへのアクセスを無効にし、linuxコマンドインターフェースを入力し、プロンプトで次のように入力します:
#chmod600/etc/inetd.conf//ファイル属性を600
#chattr+に変更しますI /etc /inetd.conf // ファイルの所有者が root
#chattr であることを確認します。I /etc/inetd.conf //ファイルへの変更を制限します
ユーザーによる変更を禁止しますsuコマンドを渡します rootuser
に変更します 次の2行を追加します:十分な認証 /lib/security/pam_rootok.sodebug認証が必要 /lib/security/pam_whell.sogroupwheel
特別なアカウントをすべて削除
#userdel lpなど ユーザーを削除
#groupdellpなど グループを削除
未使用を禁止 suid/program
#find/-typef(-perm-04 000 -o–perm-02000)-execls–lg{};
Brothers PHP オリジナルビデオチュートリアル CD を無料で受け取ります。詳細については、公式 Web サイトのカスタマーサービスにお問い合わせください:
http://www.lampbrother.net


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