电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

用PHP函數(shù)解決SQL injection

瀏覽:9日期:2024-01-27 10:18:36

SQL injection問(wèn)題在ASP上可是鬧得沸沸揚(yáng)揚(yáng)當(dāng)然還有不少國(guó)內(nèi)外著名的PHP程序“遇難”。至于SQL injection的詳情,網(wǎng)上的文章太多了,在此就不作介紹。如果你網(wǎng)站空間的php.ini文件里的magic_quotes_gpc設(shè)成了off,那么PHP就不會(huì)在敏感字符前加上反斜杠(),由于表單提交的內(nèi)容可能含有敏感字符,如單引號(hào)('),就導(dǎo)致了SQL injection的漏洞。在這種情況下,我們可以用addslashes()來(lái)解決問(wèn)題,它會(huì)自動(dòng)在敏感字符前添加反斜杠。但是,上面的方法只適用于magic_quotes_gpc=Off的情況。作為一個(gè)開(kāi)發(fā)者,你不知道每個(gè)用戶的magic_quotes_gpc是On還是Off,如果把全部的數(shù)據(jù)都用上addslashes(),那不是“濫殺無(wú)辜”了?假如magic_quotes_gpc=On,并且又用了addslashes()函數(shù),那讓我們來(lái)看看: <?php//如果從表單提交一個(gè)變量$_POST['message'],內(nèi)容為 Tom's book//這此加入連接MySQL數(shù)據(jù)庫(kù)的代碼,自己寫吧//在$_POST['message']的敏感字符前加上反斜杠$_POST['message'] = addslashes($_POST['message']);

//由于magic_quotes_gpc=On,所以又一次在敏感字符前加反斜杠$sql = 'INSERT INTO msg_table VALUE('$_POST[message]');';

//發(fā)送請(qǐng)求,把內(nèi)容保存到數(shù)據(jù)庫(kù)內(nèi)$query = mysql_query($sql);

//如果你再?gòu)臄?shù)據(jù)庫(kù)內(nèi)提取這個(gè)記錄并輸出,就會(huì)看到 Tom's book?>

這樣的話,在magic_quotes_gpc=On的環(huán)境里,所有輸入的單引號(hào)(')都會(huì)變成(')……其實(shí)我們可以用get_magic_quotes_gpc()函數(shù)輕易地解決這個(gè)問(wèn)題。當(dāng)magic_quotes_gpc=On時(shí),該函數(shù)返回TRUE;當(dāng)magic_quotes_gpc=Off時(shí),返回FALSE。至此,肯定已經(jīng)有不少人意識(shí)到:?jiǎn)栴}已經(jīng)解決。請(qǐng)看代碼: <?php//如果magic_quotes_gpc=Off,那就為提單提交的$_POST['message']里的敏感字符加反斜杠//magic_quotes_gpc=On的情況下,則不加if (!get_magic_quotes_gpc()) {$_POST['message'] = addslashes($_POST['message']);} else {}?>其實(shí)說(shuō)到這里,問(wèn)題已經(jīng)解決。下面再說(shuō)一個(gè)小技巧。有時(shí)表單提交的變量不止一個(gè),可能有十幾個(gè),幾十個(gè)。那么一次一次地復(fù)制/粘帖addslashes(),是否麻煩了一點(diǎn)?由于從表單或URL獲取的數(shù)據(jù)都是以數(shù)組形式出現(xiàn)的,如$_POST、$_GET)那就自定義一個(gè)可以“橫掃千軍”的函數(shù): <?phpfunction quotes($content){//如果magic_quotes_gpc=Off,那么就開(kāi)始處理if (!get_magic_quotes_gpc()) {//判斷$content是否為數(shù)組if (is_array($content)) {//如果$content是數(shù)組,那么就處理它的每一個(gè)單無(wú)foreach ($content as $key=>$value) {$content[$key] = addslashes($value);}} else {//如果$content不是數(shù)組,那么就僅處理一次addslashes($content);}} else {//如果magic_quotes_gpc=On,那么就不處理}//返回$contentreturn $content;}?>

標(biāo)簽: PHP
主站蜘蛛池模板: 气动球阀_衬氟蝶阀_调节阀_电动截止阀_上海沃托阀门有限公司 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 服务器之家 - 专注于服务器技术及软件下载分享 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 天长市晶耀仪表有限公司 | 智能气瓶柜(大型气瓶储存柜)百科| 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 滚筒线,链板线,总装线,流水线-上海体能机电有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 打造全球沸石生态圈 - 国投盛世| 宝鸡市人民医院| 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 999范文网_优质范文下载写作帮手| 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 学习虾-免费的学习资料下载平台|