`
王之子
  • 浏览: 109839 次
  • 性别: 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 过滤生僻字和特殊字符

    在PHP编程中,过滤生僻字和特殊字符是一项常见的需求,尤其在处理用户输入、文本清洗或者数据存储时。这通常是为了确保数据的安全性、一致性以及兼容性。本篇文章将详细探讨如何在PHP中实现这一功能,同时也会分享一...

    PHP 过滤特殊字符和HTML字符对照表

    - PHP提供了一系列函数用于过滤特殊字符,例如`htmlspecialchars()`用于转换HTML实体,`addslashes()`用于在字符串前添加反斜杠以转义特殊字符,`mysqli_real_escape_string()`或`PDO::quote()`则用于SQL查询时的...

    php javascript html mysql 特殊字符处理.txt

    2. **URL编码**:当需要将字符串作为URL参数传递时,需要对其进行URL编码。 - 示例代码: ```javascript var url = "http://example.com/?q=" + encodeURIComponent("John Doe"); console.log(url); // 输出 ...

    HTML特殊字符转换

    为了避免这些字符被浏览器解析为HTML语法,我们需要对它们进行特殊字符转换。这就是"HTML特殊字符转换"这一主题的核心内容。 当我们直接在HTML文档中插入这些特殊字符时,浏览器可能会误解我们的意图。例如,如果...

    html中的特殊字符转换

    在实际开发中,有许多工具和库可以帮助开发者自动处理特殊字符转义,如JavaScript的`encodeURI()`、`encodeURIComponent()`函数,PHP的`htmlspecialchars()`函数等。这些工具能确保内容正确显示且安全。 7. **...

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

    在PHP编程中,`htmlspecialchars()` 是一个非常关键的函数,用于将预定义的字符转换为HTML实体,以防止数据在HTML环境下产生意外的解析效果。这个函数的主要作用是确保输入到网页的内容不会被浏览器错误地解释为HTML...

    php将字符串转为HTML的实体类.zip

    使用这个类库时,开发者可以创建类的实例,然后调用`convertToHtmlEntities()`方法对用户输入或需要编码的字符串进行处理,如: ```php $encoder = new HtmlEntitiesConverter(); $safeString = $encoder-&gt;...

    转义表单提交字符处理函数

    因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍几种常用的用于处理表单提交字符的函数,包括在PHP和JavaScript中的应用。 #### PHP中的转义函数 1. **htmlspecialchars()** - **功能**:此...

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

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

    PHP关于htmlspecialchars、strip_tags、addslashes的解释

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

    php过滤非法字符类.zip

    在上下文中,非法字符通常指的是可能导致安全问题的特殊字符,如SQL语句中的分隔符、注释符号、特殊运算符等。这些字符如果未经处理就直接用于数据库查询,可能会导致SQL注入攻击,使得攻击者能够执行恶意SQL命令。...

    php常见漏洞及编码安全(附笔记)

    防止XSS的方法包括使用htmlspecialchars函数对用户输入进行转义,设置HTTPOnly cookies以防止JavaScript访问敏感的Cookie信息,以及使用Content Security Policy (CSP)限制加载的资源类型。 3. 跨站请求伪造(CSRF)...

    php字符串操作全实例心得

    这些函数可以对字符串进行各种操作,如加密、解密、格式化、搜索、替换等。下面是 PHP 字符串函数大全的详细说明: 1. AddSlashes: 字符串加入斜线 AddSlashes 函数将字符串中的特殊字符(如单引号、双引号、反...

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

    PHP中的htmlspecialchars()函数是一个非常实用的函数,主要用于将特殊字符转换成HTML实体。这在Web开发中非常重要,因为它可以帮助防止跨站脚本攻击(XSS),同时确保数据在浏览器中正确显示。 htmlspecialchars()...

    PHP实例开发源码—ATIVEASCII编码在线互转.zip

    而ACTIVEASCII编码可能是一个特定的、扩展的ASCII编码格式,它可能包含了更多的字符或者特殊符号,用于更复杂的数据处理。由于"ACTIVEASCII"并不是一个标准的编码术语,这里可能是开发者自定义的一种编码方式,或者...

    PHP 字符串的过滤方法

    9. **urlencode()** 和 **urldecode()**: 这两个函数用于对URL进行编码和解码,确保URL中的特殊字符能正确传输。 在实际应用中,开发者通常会结合使用这些函数,根据需求创建自定义的过滤逻辑。例如,在接收用户...

    PHP网站编程技术-字符串处理.doc

    在实验中,对字符串进行了剪切并输出。 此外,`strcmp()`函数用于比较两个字符串是否相等,返回值为0表示两者相等,不等于0则表示不相等。 在处理包含HTML标签的字符串时,`htmlspecialchars()`函数将HTML特殊字符...

Global site tag (gtag.js) - Google Analytics