劣质的PHP代码简化


Posted in PHP onFebruary 08, 2010
<? 
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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
使用PHP编写的SVN类
Jul 18 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
php身份证号码检查类实例
Jun 18 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
详解json在php中的应用
Sep 30 PHP
php源码的安装方法和实例
Sep 26 PHP
php下把数组保存为文件格式的实例应用
Feb 08 #PHP
php date与gmdate的获取日期的区别
Feb 08 #PHP
php 获取当前访问的url文件名的方法小结
Feb 08 #PHP
用php实现的下载css文件中的图片的代码
Feb 08 #PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 #PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 #PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 #PHP
You might like
php分页思路以及在ZF中的使用
2012/05/30 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
JS中的const命令你真懂它吗
2020/03/08 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
python中的错误处理
2016/04/10 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python虚拟环境迁移方法
2019/01/03 Python
Python基础教程之异常详解
2019/01/10 Python
用python做游戏的细节详解
2019/06/25 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
德尔福集团DELPHI的笔试题
2012/02/22 面试题
个人创业事迹材料
2014/12/30 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
羊脂球读书笔记
2015/06/30 职场文书
投诉书范文
2015/07/02 职场文书
导游词之西安骊山
2019/12/20 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
Go语言设计模式之结构型模式
2021/06/22 Golang
python 字典和列表嵌套用法详解
2021/06/29 Python