PHP 安全检测代码片段
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('', '&'), $string);119 $string = str_replace(array("%3C",'<'), '<', $string);120 $string = str_replace(array("%3E",'>'), '>', $string);121 $string = str_replace(array('"',"'","\t",' '), array('"',''',' ',' '), $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('..',')','<','='), $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 安全检测代码片段相关推荐
- 985大学的高材生只会写代码片段,丢人吗?
很多同学在学习编程的时候都会遇到各种各样的难题,比如:没有合适的资料.学习过于碎片化.资料的质量层次不齐.看了很多视频自己动手时却还是不会.接触不到完整项目.无法检测自己的编程水平是不是企业所认可的- ...
- php编程神器,PHP代码神器 十个PHP代码片段超极好用
PHP开发中敲代码是最能磨练人意志的,面对枯燥的代码有些人感兴趣,然而有些人不耐烦,面对如此多的代码总想着可以复制粘贴,以提高效率.PHP代码有这种功能,今天小编给大家推荐一些PHP代码神器,十个超极 ...
- php常用的十个代码片段,转载
为什么80%的码农都做不了架构师?>>> PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言.PHP拥有数以百计的基本功能,支持 ...
- C#程序员经常用到的10个实用代码片段
转载地址:http://www.codeceo.com/article/10-csharp-code-spinet.html 如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来 ...
- 前端:分享一些实用的JS代码片段
今天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏! 1.获取浏览器的版本 function getBrowser() {var UserAgent = navigator.userAgent ...
- 十条实用的jQuery代码片段
以下十项jQuery示例可以帮助大家的Web设计项目顺利实现效率提升. 检测IE浏览器 在进行CSS设计时,IE浏览器对开发者及设计师而言无疑是个麻烦.尽管IE6的黑暗时代已经过去,IE浏览器家族的人 ...
- jquery html 片段,十条jQuery代码片段助力Web开发效率提升
JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...
- lab 常用配置参数 代码片段
1.--leaks 启用内存泄漏检测,并在检测到时向您发出警告 2.代码片段 experiment('getting started with hapi testing,', () => {// ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 为开发者准备的9个实用PHP代码片段(转)
[导读] 当你开发网站.app或博客系统时,如果有一些实用的代码片段可以直接使用,就可以节省你大量的时间和精力.这篇文章就为你分享几个实用的PHP代码片段,帮助你的Web开发. 本文由P ...
最新文章
- HarmonyOS 修改App的默认加载的界面
- profile 文件含义
- VS2010项目生成时提示错误“在证书存储区中找不到清单签名证书”?
- 7-6 求一元二次方程 (10 分)
- Windows中非常实用的命令
- SAP Fiori Elements - smart filter bar study - filter display logic
- How is Organization Unit currency attribute merged into pricing document
- LAMP架构,纯文本作品
- BeginnersBook Perl 教程
- 查看设备UUID的方法
- oracle切换实例启动,3.1 Oracle体系结构之实例启动与关闭
- Mac OS 使用笔记
- 云服务器怎么换ip云服务器,云服务器换ip难不难?云服务器换IP的步骤
- ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络
- 【C语言】分享一些个人C语言程序代码[大一下集合]
- landsat TM数据辐射定标和flaash大气校正
- Java回文数代码(初学者易懂)
- QGIS使用之基本介绍和安装教程
- 人脸识别的时候,一定要穿上衣服啊!否则。。。
- UDS诊断系列之二 ISO14229协议介绍(上)
热门文章
- 区块链 以太坊 智能合约 运行原理和开发实例
- 比特币 转账交易为什么要等6个区块确认才算到账 安全 以太坊12个区块
- 微信小程序云开发教程-云函数获取用户授权信息
- SpringBoot 集成ElasticSearch(二)分页查询
- linux ffmpeg插件,Linux FFmpeg(含x264、lame插件)安装记录
- 基于springboot+vue的(高考)志愿录取系统(前后端分离)
- Linux 挂载华为存储,linux扫描挂载存储
- node.js 实现udp传输_nodejs实现UDP组播示例方法
- Redis 基本命令、键(key)命令、基本数据类型(命令行操作)
- (转)60s快速分析Linux性能