• 字符转义


    与PHP字符串转义相关的配置和函数如下: 
    1.magic_quotes_runtime            PHP5.3.0以上为关闭,set、get废除

    2.magic_quotes_gpc                  magic_quotes_gpc设置是否自动为GPC(GET,POST,COOKIE)传来的数据中的某些字符进行转义

    3.addslashes()和stripslashes()    addslashes()‍ 在指定的预定义字符前添加反斜杠。 预定义字符包括单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 

                                                    stripslashes()函数的功能与addslashes()‍正好相反,它的功能是去除转义的效果。

    4.mysql_escape_string()             转义 SQL语句中使用的字符串中的特殊字符。‍ 这里的特殊包括(\x00)、( \n)、( \r )、(\)、( ')、 (")、( \x1a) 

    5.addcslashes()和stripcslashes() 

    6.htmlentities() 和html_entity_decode()      htmlentities() 把字符转换为 HTML 实体。html_entity_decode() -‍把 HTML 实体转换为字符。

    7.htmlspecialchars()和htmlspecialchars_decode()        htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体。 反函数是htmlspecialchars_decode()

     

    注意:一、无法通过函数来定义magic_quotes_gpc,因此建议在服务器上统一开启,写程序的时候应该在来判断下,避免没开启GPC引起安全问题。

             通过addslashes对GPC进行时候转义时,应注意当用户提交数组数据时对键值和值的过滤 :

    if(!get_magic_quotes_gpc()) { 
    $_GET = daddslashes($_GET); 
    $_POST = daddslashes($_POST); 
    $_COOKIE = daddslashes($_COOKIE); 
    $_FILES = daddslashes($_FILES); 

    function daddslashes($string, $force = 1) { 
    if(is_array($string)) { 
    foreach($string as $key => $val) { 
    unset($string[$key]); 
    $string[addslashes($key)] = daddslashes($val, $force); 

    } else { 
    $string = addslashes($string); 

    return $string; 
     
     
        二、利用在用户输入或输出时候转义HTML实体以防止XSS漏洞的产生!
  • 相关阅读:
    常用的一些js方法
    git常用命令
    thread join和detach的区别
    C和C++的区别和联系
    C++面试集锦( 面试被问到的问题 )
    C/C++面试题:编写类String的构造函数、析构函数和赋值函数。
    C++ 多态的实现及原理
    获取当前操作系统的ip
    CString的头文件
    C++ 多用户模式下同一个exe只能运行一次
  • 原文地址:https://www.cnblogs.com/zhanghaoyong/p/2647674.html
Copyright © 2020-2023  润新知