1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP实现的防止跨站和xss攻击代码php技巧

PHP实现的防止跨站和xss攻击代码php技巧

时间:2023-06-10 05:00:36

相关推荐

PHP实现的防止跨站和xss攻击代码php技巧

后端开发|php教程

PHP,跨站,xss攻击

后端开发-php教程文档说明:

php 微网站 源码,vscode和码云,ubuntu vc编程,tomcat安全基线配置,爬虫stool,php 日期范围,嘉兴seo公司哪个好,网站首页模板简单,部队织梦网站模板免费下载lzw

1.将waf.php传到要包含的文件的目录

WAP电影源码,vscode代码过长,ubuntu tf卡读卡器驱动,tomcat cpu要求,txt批量导入sqlite,网站引导插件,最热门的前端框架,phthon爬虫数据是什么,php修改代码,菏泽seo价格,外贸企业网站系统,在手机看电脑网页视频播放器下载,qq模板资源设置失败,淘宝客上传程序后网页打不开lzw

2.在页面中加入防护,有两种做法,根据情况二选一即可:

山山商城源码,vscode插件预览,nwjs ubuntu,tomcat jsp 解析,浏览器连接sqlite,网页设计 视频插件 免费,前端过度依赖ui框架,python实现万能爬虫,php 匹配 html,江西seo优化供应,企业网站模板,一元云购网页版,discuz门户文章模板lzw

a).在所需要防护的页面加入代码

require_once(waf.php);

就可以做到页面防注入、跨站

如果想整站防注,就在网站的一个公用文件中,如数据库链接文件config.inc.php中!

添加require_once(waf.php);来调用本代码

常用php系统添加文件

PHPCMS V9 \phpcms\base.php

PHPWIND8.7 \data\sql_config.php

DEDECMS5.7 \data\common.inc.php

DiscuzX2 \config\config_global.php

WordPress \wp-config.php

Metinfo \include\head.php

b).在每个文件最前加上代码

在php.ini中找到:

Automatically add files before or after any PHP document.

auto_prepend_file = waf.php路径;

PHP文件 waf.php

"\\=\\+\\/v(?:8|9|\\+|\\/)|\\%0acontent\\-(?:id|location|type|transfer\\-encoding)",);$args_arr=array(xss=>"[\\\\\\"\\;\\*\\].*\\bon[a-zA-Z]{3,15}[\\s\\r\\n\\v\\f]*\\=|\\b(?:expression)\\(|\\<script[\\s\\\\\\/]|\\"[^\\{\\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_cmdshell|sp_oamethod|sp_addextendedproc|sp_oacreate|xp_regread|sys\\.dbms_export_extension)",other=>"\\.\\.[\\\\\\/].*\\%00([^0-9a-fA-F]|$)|%00[\\\\\\"\\.]");$referer=empty($_SERVER[HTTP_REFERER]) ? array() : array($_SERVER[HTTP_REFERER]);$query_string=empty($_SERVER["QUERY_STRING"]) ? array() : array($_SERVER["QUERY_STRING"]);check_data($query_string,$url_arr);check_data($_GET,$args_arr);check_data($_POST,$args_arr);check_data($_COOKIE,$args_arr);check_data($referer,$args_arr);function W_log($log){ $logpath=$_SERVER["DOCUMENT_ROOT"]."/log.txt"; $log_f=fopen($logpath,"a+"); fputs($log_f,$log."\r\n"); fclose($log_f);}function check_data($arr,$v) { foreach($arr as $key=>$value) { if(!is_array($key)) { check($key,$v);} else { check_data($key,$v);} if(!is_array($value)) { check($value,$v);} else { check_data($value,$v);} }}function check($str,$v){ foreach($v as $key=>$value) { if (preg_match("/".$value."/is",$str)==1||preg_match("/".$value."/is",urlencode($str))==1) {//W_log("

IP: ".$_SERVER["REMOTE_ADDR"]."

时间: ".strftime("%Y-%m-%d %H:%M:%S")."

页面:".$_SERVER["PHP_SELF"]."

提交方式: ".$_SERVER["REQUEST_METHOD"]."

提交数据: ".$str);print "您的提交带有不合法参数,谢谢合作";exit(); } }}?>

您可能感兴趣的文章:

Ubuntu上安装yaf扩展的方法php实例

thinkphp3.2.0 setInc方法 源码全面解析php实例

PHP 使用二进制保存用户状态的实例php技巧

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。