`
王之子
  • 浏览: 105706 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PHP 中用 htmlspecialchars() 对特殊字符进行编码的弊端

阅读更多

    当对表单传递过来的参数用 htmlspecialchars 对特殊字符(& ,' ," ,< ,> )进行编码时(由于插入数据库安全过滤的需要),会出现如下问题。

   

    如果用户上传了一个文件是带有特殊字符的,如 ' ,文件名保存到数据库就会发生以下问题。

 



 

 

 

    如果你服务器端的 PHP 代码是通过 $_GET['id'] 间接来获取它的文件名,然后以名称传输到客户端。

 

<?php    
$name = mysql_query('SELECT name FROM accessories');//通过 ID 获取文件名
//......获取文件......
$file_path = ROOT_PATH . '/uploads/accessories/'. $name;
header ( 'Content-Disposition: attachment; filename=' . urlencode ( $name ) );
header ( 'Content-type: application/octet-stream;' );
header ( 'Content-Length: ' . filesize ( $file_path ) );
readfile ( $file_path );
exit ();
?>​

 

   那么下载的时候就会出现如下文件名错误。

 


 

个人主页: https://plus.google.com/+sherlockwang/posts

原文链接:http://woqilin.blogspot.com/2012/10/php-htmlspecialchars.html

 

  • 大小: 727 Bytes
  • 大小: 3.3 KB
分享到:
评论

相关推荐

    PHP关于htmlspecialchars、strip_tags、addslashes的解释

    PHP的htmlspecialchars、strip_tags、addslashes是网页程序开发中常见的函数,今天就来详细讲述这些函数的用法: 1.函数strip_tags:去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的...

    php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站……! 具体表现: 复制代码 代码如下: $str = “9enjoy.com的php版本是5.2.10”; echo htmlspecialchars($str); gbk字符集下输出为...

    php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析

    主要介绍了php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法,结合实例形式分析了htmlspecialchars()函数针对HTML进行字符转义的相关操作技巧,需要的朋友可以参考下

    PHP对表单提交特殊字符的过滤和处理方法汇总

    PHP关于表单提交特殊字符的处理方法做个汇总,主要涉及htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string等几个...除上面htmlspecialchars字符外,还包括双字节字符显示成编码等。  

    PHP简单处理表单输入的特殊字符的方法

    主要介绍了PHP简单处理表单输入的特殊字符的方法,涉及PHP中trim(),strip_tags(),htmlspecialchars()及addslashes()等函数的使用技巧,需要的朋友可以参考下

    PHP htmlspecialchars_decode()函数用法讲解

    PHP htmlspecialchars_decode() 函数 实例 把预定义的 HTML 实体 “&lt;“(小于)和 “&gt;”(大于)转换为字符: &lt;?php $str = This is some &lt;b&gt;bold&lt;/b&gt; text.; echo htmlspecialchars_decode($str); ?&gt; ...

    php htmlspecialchars加强版

    加强版htmlspecialchars

    如何使用PHP中的字符串函数

    将字符串中的HTML特殊字符换成它们的名字,例如\"变成\" (7)nl2br 在字符串中的每一个回车前面加上\"<BR>\". (8)AddSlashes,StripSlashes 分别给字符串中需要加上\"\\"才能用于数据库查询的字符加上和去掉\"\\...

    PHP htmlspecialchars()函数用法与实例讲解

    今天小编就为大家分享一篇关于PHP htmlspecialchars()函数用法与实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    php 特殊字符处理函数

    php防sql的注入.一般用到htmlspecialchars(),addslashes()等.不过还是对有些特殊字符不起作用.

    php 去除html标记--strip_tags与htmlspecialchars的区别详解

    本篇文章是对php中去除html标记以及strip_tags与htmlspecialchars的区别进行了详细的分析介绍,需要的朋友参考下

    php参数过滤、数据过滤类

    其实在涉及到变量取值时,intval()函数对字符串的过滤也是个不错的选择。 2)在php.ini中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_...

    几个有用的php字符串过滤,转换函数代码

    //对数据库操作时,转义特殊字符 chop();//除去字符串右边空格 trim();//除去字符串中所有空格 ltrim();//除去字符串左边空格 htmlspecialchars();//转换’$’,'”‘,'&lt;‘,’&gt;’为相应的html实体 htmlentities();...

    php htmlspecialchars()与shtmlspecialchars()函数的深入分析

    定义和用法htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。 预定义的字符是:•& (和号) 成为 &amp;•” (双引号) 成为 &quot;•’ (单引号) 成为 '•&lt; (小于) 成为 &lt;•&gt; (大于) 成为...

    php参数过滤、数据过滤类.zip

    给大家介绍php参数过滤及php数据过滤,包括php提交数据过滤的基本原则,php简单的数据过滤 ... php提交数据过滤的基本原则 ...等等,只要你把你所要执行操作的变量指定好或者对相关字符过滤严密

    php常用字符串处理函数实例分析

    chop执行去除空格处理,get_html_translation_table返回转化列表到变量,定义包括HTML编码的字符串htmlentities,htmlspecialchars_decode 定义包含HTML特殊字符的字符串,nl2br quotemeta rtrim等. 定义和用法:chop() ...

Global site tag (gtag.js) - Google Analytics