繁体   English   中英

你如何表示变量在php中“未经过清理”?

[英]How do you signify that a variable is “unsanitized” in php?

我已经在php中编写了一些基本的网站和应用程序,但我之前从未真正改编过任何严格的命名标准,除了我如何命名存储MySQL数据库中的数据的变量,在这种情况下我将它命名为完全相同作为列名(通常类似于a_column_name)。

我知道区分“不干净”和“干净”变量非常重要,因此我不会意外地最终允许SQL注入或XSS发生,但我不确定我应该使用什么命名约定。

有什么建议?

我不认为这是正确的做法。

首先,变量可以用各种方式编码,比如sql,urls,html,......你也应该编码尽可能接近消费。 即输出前的html编码,传递给mysql之前的sql escape ...

当然在sql的情况下,您应该更喜欢准备语句而不是构建字符串查询。


因此,如果您坚持使用命名约定,则应基于应用于该变量内容的转义/编码,而不是您未清理的内容。

你只需要记住逃避价值。

例如,如果您使用mysql存储字符串。

使用mysql_real_escape_string()

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

当你需要在页面中打印一些值时

使用: htmlspecialchars

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM