1 /**2 * html转换输出(只转义' " 保留Html正常运行)3 * @param $param4 * @return string5  */
6 function htmlEscape($param) {7    return trim(htmlspecialchars($param,ENT_QUOTES));8 }9
10  /**11 * 是否数组(同时检测数组中是否存在值)12 * @param $params13 * @return boolean14  */
15 function isArray($params) {16     return (!is_array($params) || !count($params)) ? false : true;17 }18
19 /**20 * 变量是否在数组中存在(参数容错, 字符串是否存在于数组中)21 * @param $param22 * @param $params23 * @return boolean24  */
25 function inArray($param, $params) {26    return (!in_array((string)$param, (array)$params)) ? false : true;27 }28
29 /**30 * 通用多类型混合转义函数31 * @param $var32  * @param $strip33 * @param $isArray34 * @return mixture35  */
36 function sqlEscape($var, $strip = true, $isArray = false) {37    if (is_array($var)) {38        if (!$isArray) return " '' ";39        foreach ($var as $key => $value) {40            $var[$key] = trim(S::sqlEscape($value, $strip));41 }42        return $var;43    } elseif (is_numeric($var)) {44         return " '" . $var . "' ";45    } else{46        return " '" . addslashes($strip ? stripslashes($var) : $var) . "' ";47 }48}49
50     /**51 * 获取服务器变量52 * @param $keys53 * @return string54      */
55     function getServer($keys) {56         $server = array();57         $array = (array) $keys;58         foreach ($array as $key) {59             $server[$key] = NULL;60             if (isset($_SERVER[$key])) {61                 $server[$key] = str_replace(array('<','>','"',"'",'%3C','%3E','%22','%27','%3c','%3e'), '', $_SERVER[$key]);62 }63 }64         return is_array($keys) ? $server : $server[$keys];65 }66
67     /**68 * 变量转义69 * @param $array70      */
71     function slashes(&$array) {72         if (is_array($array)) {73             foreach ($array as $key => $value) {74                 if (is_array($value)) {75                     S::slashes($array[$key]);76                 } else{77                     $array[$key] = addslashes($value);78 }79 }80 }81 }82
83 /**84 * 目录转换85 * @param unknown_type $dir86 * @return string87      */
88     function escapeDir($dir) {89         $dir = str_replace(array("'",'#','=','`','$','%','&',';'), '', $dir);90         return rtrim(preg_replace('/(\/){2,}|(\\\){1,}/', '/', $dir), '/');91 }92     /**93 * 通用多类型转换94 * @param $mixed95 * @param $isint96 * @param $istrim97 * @return mixture98      */
99     function escapeChar($mixed, $isint = false, $istrim = false) {100         if (is_array($mixed)) {101             foreach ($mixed as $key => $value) {102                 $mixed[$key] = S::escapeChar($value, $isint, $istrim);103 }104         } elseif ($isint) {105             $mixed = (int) $mixed;106         } elseif (!is_numeric($mixed) && ($istrim ? $mixed = trim($mixed) : $mixed) && $mixed) {107             $mixed = S::escapeStr($mixed);108 }109         return $mixed;110 }111     /**112 * 字符转换113 * @param $string114 * @return string115      */
116     function escapeStr($string) {117         $string = str_replace(array("\0","%00","\r"), '', $string); //modified@2010-7-5
118         $string = preg_replace(array('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','/&(?!(#[0-9]+|[a-z]+);)/is'), array('', '&amp;'), $string);119         $string = str_replace(array("%3C",'<'), '&lt;', $string);120         $string = str_replace(array("%3E",'>'), '&gt;', $string);121         $string = str_replace(array('"',"'","\t",'  '), array('&quot;','&#39;','    ','&nbsp;&nbsp;'), $string);122         return $string;123 }124     /**125 * 变量检查126 * @param $var127      */
128     function checkVar(&$var) {129         if (is_array($var)) {130             foreach ($var as $key => $value) {131                 S::checkVar($var[$key]);132 }133         } elseif (P_W != 'admincp') {134             $var = str_replace(array('..',')','<','='), array('&#46;&#46;','&#41;','&#60;','&#61;'), $var);135         } elseif (str_replace(array('<iframe','<meta','<script'), '', $var) != $var) {136             global $basename;137             $basename = 'javascript:history.go(-1);';138             adminmsg('word_error');139 }140     }

转载于:https://www.cnblogs.com/liangle/p/3171063.html

PHP 安全检测代码片段相关推荐

  1. 985大学的高材生只会写代码片段,丢人吗?

    很多同学在学习编程的时候都会遇到各种各样的难题,比如:没有合适的资料.学习过于碎片化.资料的质量层次不齐.看了很多视频自己动手时却还是不会.接触不到完整项目.无法检测自己的编程水平是不是企业所认可的- ...

  2. php编程神器,PHP代码神器 十个PHP代码片段超极好用

    PHP开发中敲代码是最能磨练人意志的,面对枯燥的代码有些人感兴趣,然而有些人不耐烦,面对如此多的代码总想着可以复制粘贴,以提高效率.PHP代码有这种功能,今天小编给大家推荐一些PHP代码神器,十个超极 ...

  3. php常用的十个代码片段,转载

    为什么80%的码农都做不了架构师?>>>            PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言.PHP拥有数以百计的基本功能,支持 ...

  4. C#程序员经常用到的10个实用代码片段

    转载地址:http://www.codeceo.com/article/10-csharp-code-spinet.html 如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来 ...

  5. 前端:分享一些实用的JS代码片段

    今天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏! 1.获取浏览器的版本 function getBrowser() {var UserAgent = navigator.userAgent ...

  6. 十条实用的jQuery代码片段

    以下十项jQuery示例可以帮助大家的Web设计项目顺利实现效率提升. 检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人 ...

  7. jquery html 片段,十条jQuery代码片段助力Web开发效率提升

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...

  8. lab 常用配置参数 代码片段

    1.--leaks 启用内存泄漏检测,并在检测到时向您发出警告 2.代码片段 experiment('getting started with hapi testing,', () => {// ...

  9. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  10. 为开发者准备的9个实用PHP代码片段(转)

    [导读] 当你开发网站.app或博客系统时,如果有一些实用的代码片段可以直接使用,就可以节省你大量的时间和精力.这篇文章就为你分享几个实用的PHP代码片段,帮助你的Web开发.        本文由P ...

最新文章

  1. HarmonyOS 修改App的默认加载的界面
  2. profile 文件含义
  3. VS2010项目生成时提示错误“在证书存储区中找不到清单签名证书”?
  4. 7-6 求一元二次方程 (10 分)
  5. Windows中非常实用的命令
  6. SAP Fiori Elements - smart filter bar study - filter display logic
  7. How is Organization Unit currency attribute merged into pricing document
  8. LAMP架构,纯文本作品
  9. BeginnersBook Perl 教程
  10. 查看设备UUID的方法
  11. oracle切换实例启动,3.1 Oracle体系结构之实例启动与关闭
  12. Mac OS 使用笔记
  13. 云服务器怎么换ip云服务器,云服务器换ip难不难?云服务器换IP的步骤
  14. ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络
  15. 【C语言】分享一些个人C语言程序代码[大一下集合]
  16. landsat TM数据辐射定标和flaash大气校正
  17. Java回文数代码(初学者易懂)
  18. QGIS使用之基本介绍和安装教程
  19. 人脸识别的时候,一定要穿上衣服啊!否则。。。
  20. UDS诊断系列之二 ISO14229协议介绍(上)

热门文章

  1. 区块链 以太坊 智能合约 运行原理和开发实例
  2. 比特币 转账交易为什么要等6个区块确认才算到账 安全 以太坊12个区块
  3. 微信小程序云开发教程-云函数获取用户授权信息
  4. SpringBoot 集成ElasticSearch(二)分页查询
  5. linux ffmpeg插件,Linux FFmpeg(含x264、lame插件)安装记录
  6. 基于springboot+vue的(高考)志愿录取系统(前后端分离)
  7. Linux 挂载华为存储,linux扫描挂载存储
  8. node.js 实现udp传输_nodejs实现UDP组播示例方法
  9. Redis 基本命令、键(key)命令、基本数据类型(命令行操作)
  10. (转)60s快速分析Linux性能