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

您的位置:首頁技術文章
文章詳情頁

PHP安全-輸出轉義

瀏覽:115日期:2022-09-12 09:58:44
輸出轉義

另外一個Web應用安全的基礎是對輸出進行轉義或對特殊字符進行編碼,以保證原意不變。例如,O’Reilly在傳送給MySQL數據庫前需要轉義成O’Reilly。單引號前的反斜杠代表單引號是數據本身的一部分,而不是并不是它的本義。

我所指的輸出轉義具體分為三步:

l識別輸出

l輸出轉義

l區(qū)分已轉義與未轉義數據

只對已過濾數據進行轉義是很有必要的。盡管轉義能防止很多常見安全漏洞,但它不能替代輸入過濾。被污染數據必須首先過濾然后轉義。

在對輸出進行轉義時,你必須先識別輸出。通常,這要比識別輸入簡單得多,因為它依賴于你所進行的動作。例如,識別到客戶端的輸出時,你可以在代碼中查找下列語句:

echo

print

printf

<?=

作為一項應用的開發(fā)者,你必須知道每一個向外部系統輸出的地方。它們構成了輸出。

象過濾一樣,轉義過程在依情形的不同而不同。過濾對于不同類型的數據處理方法也是不同的,轉義也是根據你傳輸信息到不同的系統而采用不同的方法。

對于一些常見的輸出目標(包括客戶端、數據庫和URL)的轉義,PHP中有內置函數可用。如果你要寫一個自己算法,做到萬無一失很重要。需要找到在外系統中特殊字符的可靠和完整的列表,以及它們的表示方式,這樣數據是被保留下來而不是轉譯了。

最常見的輸出目標是客戶機,使用htmlentities( )在數據發(fā)出前進行轉義是最好的方法。與其它字符串函數一樣,它輸入是一個字符串,對其進行加工后進行輸出。但是使用htmlentities( )函數的最佳方式是指定它的兩個可選參數:引號的轉義方式(第二參數)及字符集(第三參數)。引號的轉義方式應該指定為ENT_QUOTES,它的目的是同時轉義單引號和雙引號,這樣做是最徹底的,字符集參數必須與該頁面所使用的字符集相必配。

為了區(qū)分數據是否已轉義,我還是建議定義一個命名機制。對于輸出到客戶機的轉義數據,我使用$html數組進行存儲,該數據首先初始化成一個空數組,對所有已過濾和已轉義數據進行保存。

CODE:

<?php

$html = array( );

$html[’username’] = htmlentities($clean[’username’], ENT_QUOTES, ’UTF-8’);

echo '<p>Welcome back, {$html[’username’]}.</p>';

?>

小提示

htmlspecialchars( )函數與htmlentities( )函數基本相同,它們的參數定義完全相同,只不過是htmlentities( )的轉義更為徹底。

通過$html[’username’]把username輸出到客戶端,你就可以確保其中的特殊字符不會被瀏覽器所錯誤解釋。如果username只包含字母和數字的話,實際上轉義是沒有必要的,但是這體現了深度防范的原則。轉義任何的輸出是一個非常好的習慣,它可以戲劇性地提高你的軟件的安全性。

另外一個常見的輸出目標是數據庫。如果可能的話,你需要對SQL語句中的數據使用PHP內建函數進行轉義。對于MySQL用戶,最好的轉義函數是mysql_real_escape_string( )。如果你使用的數據庫沒有PHP內建轉義函數可用的話,addslashes( )是最后的選擇。

下面的例子說明了對于MySQL數據庫的正確的轉義技巧:

CODE:

<?php

$mysql = array( );

$mysql[’username’] = mysql_real_escape_string($clean[’username’]);

$sql = 'SELECT *

FROM profile

WHERE username = ’{$mysql[’username’]}’';

$result = mysql_query($sql);

?>

標簽: PHP
相關文章:
主站蜘蛛池模板: 盘古网络技术有限公司| 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 标准品网_标准品信息网_【中检计量】 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 写方案网_方案策划方案模板下载 事迹材料_个人事迹名人励志故事 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 高压油管,液压接头,液压附件-烟台市正诚液压附件 | arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 驾驶人在线_专业学车门户网站 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 欧景装饰设计工程有限公司-无锡欧景装饰官网 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 捆扎机_气动捆扎机_钢带捆扎机-沈阳海鹞气动钢带捆扎机公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 |