Web サイトの運用セキュリティは、すべての Web マスターが考慮すべき問題であることは間違いありません。ご存知のとおり、ほとんどのハッカーは SQL インジェクションを使用して Web サイトを攻撃します。 最もオリジナルな静的ウェブサイトが最も安全です。今日は、Web サイトが sql によってインジェクションされるのを防ぐための PHP インジェクションのセキュリティ仕様について説明します。
今日の主流のウェブサイト開発言語は依然としてphpなので、phpウェブサイトでのsqlインジェクションを防ぐ方法から始めましょう: Php インジェクションのセキュリティ予防措置 上記のプロセスを通じて、私たちはphpインジェクションの原理と方法を理解することができます。 もちろん、対応する防止方法を開発することもできます。
1つ目は、主にphp+mysqlのセキュリティ設定です。 Linux ホストのセキュリティ設定 。 php+mysql噴射を防ぐために、最初にmagic_quotes_gpcをonを最初に設定します。コードなど: $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{};
|