正文:
Xss
攻击是最常见的一种攻击方式,大家对其原理应该都很了解,所以我就不再详细解释了。
今天我给大家分享一个可以直接使用的实例源码。虽然现在很多框架都已经封装了这种防护机制,但作为PHP
开发者,了解 XSS
攻击的原理和防范方法仍然是必要的。
使用说明:
1. 将 waf
.php
文件上传到需要包含的文件目录中。
2. 在需要防护的页面中,有两种方法可供选择,根据实际情况选择其中一种即可:
a
. 在需要防护的页面中添加以下代码:
require_once
('waf
.php
');
这样就可以实现页面的注入和跨站防护。如果想要整站防注入,可以在网站的一个公用文件(如数据库链接文件 config
.inc
.php
)中添加
require_once
('waf
.php
');
来调用这段代码。
b
. 在每个文件的开头添加以下代码:
在 php
.ini
文件中找到:
Automatically
add
files
before
or
after
any
PHP
document
.
auto_prepend_file
= waf
.php
路径;
PHP
文件 waf
.php
cat
java
script
)",
'sql
' => "[^\\{\\s
]{1}(\\s
|\\b
)+(?:select
\\b
|update
\\b
|insert
(?:(\\/\\*.*?\\*\\/)|(\\s
)|(\\+))+into
\\b
).+?(?:from
\\b
|set
\\b
)|[^\\{\\s
]{1}(\\s
|\\b
)+(?:create
|delete
|drop
|truncate
|rename
|desc
)(?:(\\/\\*.*?\\*\\/)|(\\s
)|(\\+))+(?:table
\\b
|from
\\b
|database
\\b
)|into
(?:(\\/\\*.*?\\*\\/)|\\s
|\\+)+(?:dump
|out
)file
\\b
|\\bsleep
\\([\\s
]*[\\d
]+[\\s
]*\\)|benchmark
\\(([^\\,]*)\\,([^\\,]*)\\)|(?:declare
|set
|select
)\\b
.*@|union
\\b
.*(?:select
|all
)\\b
|(?:select
|update
|insert
|create
|delete
|drop
|grant
|truncate
|rename
|exec
|desc
|from
|table
|database
|set
|where
)\\b
.*(charset
|ascii
|bin
|char
|uncompress
|concat
|concat_ws
|conv
|export_set
|hex
|instr
|left
|load_file
|locate
|mid
|sub
|substring
|oct
|reverse
|right
|unhex
)\\(|(?:master
\\.\\.sysdatabases
|msysaccessobjects
|msysqueries
|sysmodules
|mysql
\\.db
|sys
\\.database_name
|information_schema
\\.|sysobjects
|sp_makewebtask
|xp_cmd
shell
转载请注明:汇站网 » PHP
过滤 XSS
攻击源码防止跨站脚本攻击