ホームページ > バックエンド開発 > PHPチュートリアル > discuz の PHP は SQL インジェクション関数を阻止します

discuz の PHP は SQL インジェクション関数を阻止します

WBOY
リリース: 2016-07-29 08:44:17
オリジナル
946 人が閲覧しました

最近、私はトピック投票 Web サイトで働いていたのですが、クライアントはプログラミングについてある程度の知識を持っていました。 SQL インジェクションを防ぐために一部の文字をフィルタリングするには特別な要件があります。もともとこの分野には特別な研究はありませんでした。はは、また利用主義を推し進めてますね。 discuz フォーラムから SQL アンチインジェクション関数を入手してください。

コードをコピーします コードは次のとおりです:

$magic_quotes_gpc = get_magic_quotes_gpc();
@extract(daddslashes($_POST));抜粋(パパスラッシュ($ _GET));
if(!$magic_quotes_gpc) {
$_FILES = パパスラッシュ($_FILES);
}
関数パパスラッシュ($string, $force = 0) {
if(!$GLOBALS[' magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = godslashes($val, $force) ;
}
} else {
$string =addlashes($string);
}
}
return $string;


サーバーのセキュリティを保護するために、次のコードを強化できます。 PHPでSQLインジェクションを防ぐセキュリティ機能!


コードをコピー

コードは次のとおりです:/* 関数名: inject_check()

関数機能: 送信された値にSQLインジェクション文字が含まれているかどうかを検出し、インジェクションを防止し、サーバーのセキュリティを保護します

パラメータ: $sql_str : 投入された変数
戻り値 : 検出結果、true または false を返す
*/
function inject_check($sql_str) {
return eregi('select|insert|and|or|update|delete|'|/*|* | ../|./|union|into|load_file|outfile', $sql_str); // フィルター
}
/*
関数名: verify_id()
関数関数: 送信された ID クラス値が正しいかどうかを検証します
パラメータ: $id: 送信された ID 値
戻り値: 処理された ID を返す
*/
function verify_id($id=null) {
if (!$id) { exit('パラメータが送信されていません!' } //空かどうかを判断する
elseif (inject_check($id)) { exit('送信されたパラメータは不正です!') } // インジェクションが空かどうかを判断します
elseif (!is_numeric($id)) { exit('送信されたパラメータは不正です! '); } // 数値判定
return $id;
関数名: str_check()送信された文字列 Filter
Parameters: $var: 処理される文字列
戻り値: フィルターされた文字列を返す
*/
function str_check( $str ) {
if (!get_magic_quotes_gpc()) { // magic_quotes_gpc がオンになっているかどうかを判断する
$str = addedlashes($str); // フィルター
}
$str = str_replace("_", "_", $str) // '_' をフィルターします
$str = str_replace("%" , " %", $str); // '%'を除外
return $str;
}
/*
関数名: post_check()
関数関数: 投稿された編集内容を処理する
パラメータ: $post : 投稿するコンテンツ
戻り値: $post: フィルターされたコンテンツを返します
*/
function post_check($post) {
if (!get_magic_quotes_gpc()) { // magic_quotes_gpc が開いているかどうかを判断します
$post =addslashes( $post); // フィルターmagic_quotes_gpc がオンになっていない場合に送信されたデータ
}
$post = str_replace("_", "_", $post) // '_' を除外します
$post = str_replace ("%", "%", $post); // '%' を除外します
$post = nl2br($post); // 変換
$post = htmlspecialchars($post); // HTML タグを変換します
$post;
上記は、SQL インジェクションを防ぐための discuz の PHP 関数を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート