在php裡解決xss最簡單的方法是使用htmlspecialchars轉義xml實體,但對於需要使用xml的時候就搏手無策了。之前一直使用乙個叫[url=的函式,該函式過濾得比較嚴格,很多html特性都過濾了,而且有bug,不修改**使用起來很不友好,修改了卻無法應對靈活的xss攻擊。
[url= purifier[/url]是基於php 5所編寫的html過濾器,支援自定義過濾規則,還可以把不標準的html轉換為標準的html,是wysiwyg編輯器的福音。。
[size=medium][b]一、使用html purifier的要求[/b][/size]
[list]
[*]php 5+
[*]iconv
[*]bcmath
[*]tidy
[/list][size=medium][b]二、基本用法[/b][/size]
預設下,使用utf-8編碼,和xhtml 1.0 transitional文件型別.
<?php
require_once 'library/htmlpurifier.includes.php';
$dirty_html = <$config->set('attr.idprefix', 'test_'); // 給所有id加上字首test_
$config->set('attr.idblacklist', array( // 設定黑名單,會過濾掉設定的id,如果設定了id字首,要把字首也加上
'test_black_list'
));$config->set('attr.idblacklistregexp', '/list_\d+/'); // 黑名單,使用正則匹配
輸入:
adf
adfadf
輸出:
adf
adfadf
[b]2.class規則[/b]
預設下,是允許所有的class。屬性attr.allowedclasses用於設定允許的class名,沒被設定的class將被拒絕使用。而attr.forbiddenclasses則用於設定拒絕使用的class名。
$config->set('attr.allowedclasses', array( // 設定允許使用的class名
'test_by_willko'
));$config->set('attr.forbiddenclasses', array( // 設定拒絕使用的class名
'ignore'
));
輸入:
12345
78900
輸出:
12345
[size=medium][b]四、html相關規則[/b][/size]
最近,身體不適,待續...
過濾XSS的HTMLPurifier使用
在php裡解決xss最簡單的方法是使用htmlspecialchars轉義xml實體,但對於需要使用xml的時候就搏手無策了。html purifier是基於php 5所編寫的html過濾器,支援自定義過濾規則,還可以把不標準的html轉換為標準的html,是wysiwyg編輯器的福音。requir...
PHP中 HTMLPurifier防XSS攻擊
htmlpurifier是我目前用過最好的php富文字html過濾器了,採用了白名單機制,有效杜絕了使用者提交表單中的非法html標籤,從而可以防止xss攻擊!配置方法記錄下來,以備工作中使用!param type string 要過濾的內容 return type description func...
Berkeley DB使用全解
在開發桌面級應用程式時,常常需要用到可持續儲存技術,做為儲存程式在退出之前所使用的資料,如變數,物件,視窗位置,大小.一般我們會使用office access這類桌面型檔案資料庫,或者是使用登錄檔.但是它們都有一些不盡人意的缺陷.比如 1.mdb檔案無法在沒有安裝office的系統上訪問,直少得需要...