我是否需要逃脱/消毒以下情况?如果是这样,最好的方法是什么?

时间:2011-06-04 17:12:31

标签: php sanitize

我是否需要逃脱/消毒以下内容?

  1. $_SERVER['HTTP_USER_AGENT'] PHP脚本(未插入 数据库或显示给用户),用于 例如:

    if ($_SERVER['HTTP_USER_AGENT']==$xyz) {
            echo "Congrats, you are using XYZ browser";
    } else {
            echo "You are not using XYZ browser.";
    }
    
  2. $_SERVER['HTTP_USER_AGENT']什么时候 作为会话变量放置,用于 例如:

    $_SESSION['userAgent']=$_SERVER['HTTP_USER_AGENT']
    
  3. 任何将要散列的东西, 例如:

    hash('sha512',$randomDataPostedByUser)
    
  4. 发往电子邮件正文的用户输入 (换句话说,我已经服用了 照顾电子邮件标题注入)。

  5. 如果上述任何一项需要进行排除/消毒,每种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

不,您显示的任何示例都不需要卫生设施,邮件正文示例的以下非常罕见的例外情况如下:

  

(仅限Windows)当PHP直接与SMTP服务器通信时,如果在行的开头找到句号,则会将其删除。要反作用,请用双点替换这些事件。

但是,您可能需要稍后清理会话变量,具体取决于您要对其执行的操作。

其他说明:

  • 您的第一个示例似乎没有意义,因为用户代理字符串变化很大。您必须使用strstr()或正则表达式来匹配用户代理。

  • 如果您正在进行比较,将用户代理存储在会话变量中可能不是一个好主意 - 只需在需要时将其从$ _SERVER数组中拉出来。