Maison développement back-end tutoriel php discuz的php防止sql注入函数

discuz的php防止sql注入函数

Jul 29, 2016 am 08:44 AM
magic post quotes str

最近在做一个主题投票网站,客户懂一些程序方面的东西。有特别要求需要过滤一些字符防止sql注入。本来这方面就没有特别的研究过。呵呵,又发扬了一回拿来主义。把discuz论坛的sql防注入函数取了来!

复制代码 代码如下:


$magic_quotes_gpc = get_magic_quotes_gpc();
@extract(daddslashes($_COOKIE));
@extract(daddslashes($_POST));
@extract(daddslashes($_GET));
if(!$magic_quotes_gpc) {
$_FILES = daddslashes($_FILES);
}
function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}


大家可以增强下面的代码加以保护服务器的安全,PHP防止SQL注入安全函数十分重要!

复制代码 代码如下:


/*
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
参  数:$sql_str: 提交的变量
返 回 值:返回检测结果,ture or 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('提交的参数非法!'); } // 数字判断
$id = intval($id); // 整型化
return $id;
}
/*
函数名称:str_check()
函数作用:对提交的字符串进行过滤
参  数:$var: 要处理的字符串
返 回 值:返回过滤后的字符串
*/
function str_check( $str ) {
if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开
$str = addslashes($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标记转换
return $post;
}

以上就介绍了 discuz的php防止sql注入函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Mar 23, 2023 am 09:15 AM

Pour les développeurs PHP, utiliser POST pour accéder à des pages avec des paramètres est une compétence de base. POST est une méthode d'envoi de données en HTTP. Il peut soumettre des données au serveur via des requêtes HTTP. La page de renvoi traite et saute la page côté serveur. Dans le développement réel, nous devons souvent utiliser POST avec des paramètres pour accéder aux pages afin d'atteindre certains objectifs fonctionnels.

Comment déterminer si un message a été soumis en PHP Comment déterminer si un message a été soumis en PHP Mar 21, 2023 pm 07:12 PM

PHP est un langage de script côté serveur largement utilisé qui peut être utilisé pour créer des applications Web interactives et dynamiques. Lors du développement d'applications PHP, nous devons généralement soumettre les données saisies par l'utilisateur au serveur pour traitement via des formulaires. Cependant, nous devons parfois déterminer si les données du formulaire ont été soumises en PHP. Cet article explique comment effectuer une telle détermination.

Découvrez les récompenses Diamond de Magic Eden : valeur gagnée et comment l'obtenir Découvrez les récompenses Diamond de Magic Eden : valeur gagnée et comment l'obtenir Jan 26, 2024 pm 05:57 PM

Auparavant, MagicEden, un marché NFT grand public sur la chaîne SOL, avait lancé la fonction Launchpad. Avant cela, PANews a présenté l'état de fonctionnement de MagicEden et fourni une analyse sur l'optimisation des méthodes de fonctionnement et des méthodes d'investissement pour les plateformes de trading et les utilisateurs NFT. Récemment, MagicEden a lancé de nouvelles activités en termes d'opérations et introduit des récompenses en diamant pour motiver les utilisateurs à utiliser ses produits. Dans cet article, PANews expliquera en détail comment obtenir la récompense en diamant de MagicEden et évaluera si cette récompense vaut la peine d'être gagnée. Les MagicEden Diamond Rewards valent-ils la peine d'être gagnés ? Selon le blog officiel, la plateforme MagicEden offre désormais aux utilisateurs davantage d'avantages à long terme grâce à l'autonomisation des Diamond Rewards.

Comment utiliser la publication des requêtes Python Comment utiliser la publication des requêtes Python Apr 29, 2023 pm 04:52 PM

Python simule le navigateur envoyant des demandes de publication au format importrequests request.postrequest.post(url,data,json,kwargs)#format de demande de publication request.get(url,params,kwargs)#Par rapport à la demande d'obtention, les paramètres d'envoi de demande de publication sont divisés en Le paramètre de données Forms ( x-www-form-urlencoded) json (application/json) prend en charge le format de dictionnaire et le format de chaîne. Le format de dictionnaire utilise la méthode json.dumps() pour convertir les données en chaîne au format json légal.

Le plus grand écran externe pliable ! Honor Magic V Flip dévoilé Le plus grand écran externe pliable ! Honor Magic V Flip dévoilé Jun 14, 2024 am 11:21 AM

Selon les informations du 13 juin, aujourd'hui soir, le premier petit écran pliable de Honor, Honor Magic VFlip, a officiellement fait ses débuts. Différent des autres petits pliables, Honor MagicVFlip propose le plus grand écran externe magique pliable verticalement de l'industrie. Sa taille d'écran est de 4,0 pouces, utilisant une conception à quatre courbes et de profondeur égale. Le rapport écran/corps a atteint un niveau sans précédent de 85 %. Dès lors, l'écran externe n'est plus. L'"écran secondaire" est l'écran principal tant à l'intérieur qu'à l'extérieur. Dans le même temps, l'écran externe Honor MagicVFlip offre également une qualité d'écran comparable à celle des produits phares, un écran de protection oculaire Honor de pointe et une interaction intelligente dans tous les scénarios. Il est rapporté que l'écran externe Honor MagicVFlip est un écran externe LTPO global à faible consommation qui atteint une luminosité maximale locale de 2 500 nits, leader du secteur.

Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? May 16, 2023 pm 07:53 PM

1. Java appelle l'interface de publication 1. Utilisez URLConnection ou HttpURLConnection fourni avec Java. Il n'est pas nécessaire de télécharger d'autres packages jar. Si le code de réponse de l'interface est modifié par le serveur, le message de retour ne peut pas être reçu. ne peut être reçu que lorsque le code de réponse est correct pour renvoyer publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt.

Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML May 22, 2023 pm 07:49 PM

Nom du serveur :server{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx/ssl/nirvana.test-a.gogen .key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

Le système magique peut-il être mis à niveau vers Hongmeng ? Le système magique peut-il être mis à niveau vers Hongmeng ? Dec 22, 2022 pm 02:29 PM

Le système magique ne peut pas être mis à niveau vers Hongmeng, car le système magique appartient aux téléphones Honor, et Honor a été séparé de Huawei et n'est plus une filiale de Huawei. Par conséquent, les téléphones Honor sortis après le 17 novembre 2020 ne prennent pas en charge la mise à niveau vers Hongmeng. . Systématique.

See all articles