/*** 简单的 php 防注入、防跨站 函数* @return String*/function fn_safe($str_string) {//直接剔除$_arr_dangerChars = array("|", ";", "$", "@", "+", "\t", "\r", "\n", ",", "(", ")", PHP_EOL //特殊字符
);//正则剔除$_arr_dangerRegs = array(/*-------- 跨站 --------*///html 标签"/<(script|frame|iframe|bgsound|link|object|applet|embed|blink|style|layer|ilayer|base|meta)\s+\S*>/i",//html 属性"/on(afterprint|beforeprint|beforeunload|error|haschange|load|message|offline|online|pagehide|pageshow|popstate|redo|resize|storage|undo|unload|blur|change|contextmenu|focus|formchange|forminput|input|invalid|reset|select|submit|keydown|keypress|keyup|click|dblclick|drag|dragend|dragenter|dragleave|dragover|dragstart|drop|mousedown|mousemove|mouseout|mouseover|mouseup|mousewheel|scroll|abort|canplay|canplaythrough|durationchange|emptied|ended|error|loadeddata|loadedmetadata|loadstart|pause|play|playing|progress|ratechange|readystatechange|seeked|seeking|stalled|suspend|timeupdate|volumechange|waiting)\s*=\s*(\"|')?\S*(\"|')?/i",//html 属性包含脚本"/\w+\s*=\s*(\"|')?(java|vb)script:\S*(\"|')?/i",//js 对象"/(document|location)\s*\.\s*\S*/i",//js 函数"/(eval|alert|prompt|msgbox)\s*\(.*\)/i",//css"/expression\s*:\s*\S*/i",/*-------- sql 注入 --------*///显示 数据库 | 表 | 索引 | 字段"/show\s+(databases|tables|index|columns)/i",//创建 数据库 | 表 | 索引 | 视图 | 存储过程 | 存储过程"/create\s+(database|table|(unique\s+)?index|view|procedure|proc)/i",//更新 数据库 | 表"/alter\s+(database|table)/i",//丢弃 数据库 | 表 | 索引 | 视图 | 字段"/drop\s+(database|table|index|view|column)/i",//备份 数据库 | 日志"/backup\s+(database|log)/i",//初始化 表"/truncate\s+table/i",//替换 视图"/replace\s+view/i",//创建 | 更改 字段"/(add|change)\s+column/i",//选择 | 更新 | 删除 记录"/(select|update|delete)\s+\S*\s+from/i",//插入 记录 | 选择到文件"/insert\s+into/i",//sql 函数"/load_file\s*\(.*\)/i",//sql 其他"/(outfile|infile)\s+(\"|')?\S*(\"|')/i",);$_str_return = $str_string;//$_str_return = urlencode($_str_return);foreach ($_arr_dangerChars as $_key=>$_value) {$_str_return = str_ireplace($_value, "", $_str_return);}foreach ($_arr_dangerRegs as $_key=>$_value) {$_str_return = preg_replace($_value, "", $_str_return);}$_str_return = htmlentities($_str_return, ENT_QUOTES, "UTF-8", true);return $_str_return;
}

转载于:https://www.cnblogs.com/daxian2012/p/10217922.html

简单的 php 防注入、防跨站 函数相关推荐

  1. php 接口 防跨站,简单的 php 防注入、防跨站 函数

    自己写的 简单的 php 防注入.防跨站 函数,分享给大家 1.[代码][PHP]代码 function fn_safe($str_string) { //直接剔除 $_arr_dangerChars ...

  2. web安全性测试用例(输入、输出、SQL注入、跨站请求伪造(CSRF)、跨站脚本攻击(XSS))实实在在的干货

    https://www.cnblogs.com/qmfsun/p/3724406.html 建立整体的威胁模型,测试溢出漏洞.信息泄漏.错误处理.SQL 注入.身份验证和授权错误. 1.   输入验证 ...

  3. 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞

    本篇文章总结于各大博客 版权声明:本文为博主原创文章,欢迎大家转载.如有错误请多多指教. https://blog.csdn.net/u011794238/article/details/464199 ...

  4. PHP中SQL注入与跨站攻击的防范

    SQL injection即SQL注入是我们每个WEB程序员都需要面对的问题,一个WEB应用假如没有起码的安全性,那么其它的一切就可以免谈了.注入问题在ASP上可谓是闹得沸沸扬扬,当然还有不少PHP程 ...

  5. 对kangle ep进行加固 安全防御 CC防御防注入防木马等操作

    一.禁止目录执行 先点击右边的请求控制 选择添加 目标 选择拒绝 俩个匹配模块 reg_path 分别写入 记得勾选 nc 详细和图片对比 .*//((attachment)|(attachments ...

  6. .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...

    通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性. ASP.NET Core 中包含管理身份验证.授权.数据保护.SSL 强制.应用机密.请求防伪保护及 CORS 管理等等安全方面 ...

  7. CSRF(跨站请求伪造攻击)详解以及防护之道

    CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执 ...

  8. CSRF(Cross-site request forgery)跨站请求伪造

    为什么80%的码农都做不了架构师?>>>    CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2 ...

  9. CSRF跨站请求伪造攻击

    CSRF(Cross-site request forgery)跨站请求伪造 CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方 ...

最新文章

  1. 《SAP高级应用开发》---Idoc学习笔记
  2. java jxl创建多个sheet,使用jxl导出excel时怎么创建多个sheet | 学步园
  3. Redis多机功能之复制
  4. 阿德莱德大学计算机语言班,阿德莱德大学——英语语言中心
  5. 鲁迅散文——随感录四十九
  6. 安装TokuDB引擎
  7. 使Android 自带SDK 完美支持HTML5 之 html5webview
  8. 编历修改工作表中的控件属性(更新条形码)
  9. win10推荐的锁屏壁纸该怎么保存 win10休眠锁屏壁纸保存
  10. eclipse查看git地址_40个适用于Linux管理员和开发人员的git命令(上)
  11. Ubuntu 远程使用ssh 开启服务器终端的方法
  12. html5在线预览附件,干货-基于html5的本地多图上传并可在线预览
  13. Rsyslog日志格式实例:记录IP地址而非主机名
  14. 中国工商注册企业全信息数据
  15. python处理ts_python将ts转换成MP4
  16. 用html制作三角形九九乘法表,用js实现打印九九乘法表
  17. 从日剧《西游记》谈项目管理
  18. 打工人的「周游世界」,AI算法帮你实现,泪目!
  19. LeetCode知识点总结 - 997
  20. satisfy with用法

热门文章

  1. 关于 Python 列表操作,最常见问答Top10
  2. 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?
  3. Spark on Yarn:任务提交参数配置
  4. SCM-SVN集成服务器
  5. 金属的特性只是一种状态
  6. silverlight中如何将string(字符串)写入Resource(资源)?
  7. 使用ViewPager实现左右循环滑动图片
  8. IReport报表分组与分组统计
  9. android 获取ArrayList的Capacity
  10. android String.charAt的使用