劣质的PHP代码简化

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

<?
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函数,从而保证单引号也会被转义,虽然这并不是最主要的,但也算是一个良好的习惯

相关文章

smarty模板嵌套之include与fetch性能测试

方法一、使用在父模板中使用{include file="child.tpl"}直接将子模板包含进来   优点:     1、有利于模块的划分和模板的重用。     2、嵌套层次不多的时候...

利用php绘制饼状图的实现代码

drawPieImg()函数包含8个参数,$title为饼状图的标题;$dataArr为需要显示的数据数组;$labelArr为对应数据的标签分类数组;$colorArr为对应数据的绘图...

php文件上传简单实现方法

本文实例讲述了php文件上传的简单实现方法。分享给大家供大家参考。具体如下: 文件1:index.php 复制代码 代码如下:<form enctype="multipart/fo...

基于php下载文件的详解

php下载文件,比如txt文件。出现的效果就是,弹出浏览器自带的下载框,出现另存为操作。有时候会出现内存溢出和超时的现象。超时的话,设置set_time_limit(0);出现内存溢出的...

php内嵌函数用法实例

本文实例讲述了php内嵌函数用法。分享给大家供大家参考。具体分析如下: php中可以在函数内部内嵌一个函数,调用范围仅限于函数本身 <?php function msg...