劣质的PHP代码简化
2015-01-24信息快讯网
<? echo("<p>search results for query:"). $_GET['query'].".</p>"; ?>
这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生XSS漏洞。其实有很多方法可以填补这个漏洞。那么,什么代码是我们想要的呢?
<? echo("<p>search results for query:"). htmlspecialchars($_GET['query']).".</p>"; ?>
这是最低要求。XSS漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符。
<?php if(isset($_GET['query'])) echo'<p>search results for query:', htmlspecialchars($_GET['query'],ENT_QUOTES).'.</p>'; ?>
能写出这样代码的人应该是我想要录用的人了:
*<?被替换成了<?php,这样更符合XML规范。
*在输出$_GET['query']值前先判断它是否为空。
*echo命令中多余的括号被去掉了。
*字符串用单引号限定,从而节省了PHP从字符串中搜索可替换的变量的时间。
*用逗号代替句号,节省了echo的时间。
*将ENT_QUOTES标识传递给htmlspecialchars函数,从而保证单引号也会被转义,虽然这并不是最主要的,但也算是一个良好的习惯
php中的三元运算符使用说明
PHP 数据结构 算法 三元组 Triplet
php中批量删除Mysql中相同前缀的数据表的代码
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
php编程实现获取excel文档内容的代码实例
yii框架源码分析之创建controller代码
php设计模式 Prototype (原型模式)代码
php URL跳转代码 减少外链
php 生成随机验证码图片代码
php下把数组保存为文件格式的实例应用
php date与gmdate的获取日期的区别
php 获取当前访问的url文件名的方法小结
用php实现的下载css文件中的图片的代码
php不用内置函数对数组排序的两个算法代码
php读取xml实例代码
PHP 时间转换Unix时间戳代码
PHP 实用代码收集