网站:用户将文本输入到字段中 - 我需要注意什么?

时间:2011-02-06 01:44:10

标签: php mysql ajax security

有人可以给我一份我需要注意的事情清单吗?到目前为止,我只听说过SQL注入和特殊字符。

还有什么,我需要采取哪些预防措施?更具体一点,我使用AJAX作为我的服务器端语言,MySQL作为我的数据库系统。

感谢。

3 个答案:

答案 0 :(得分:1)

首先,与数据库交谈:

您需要使用阻止SQL injection attacks的机制将输入传递到数据库;最可靠的机制是在接受任何类型的用户提供的输入时始终使用parameterized queries

其次,将数据返回给用户:

每当您从数据库中检索用户提供的数据并将其打印给用户时,您必须escape all HTML elements阻止用户向其他观看者注入CSRFXSS或类似攻击

答案 1 :(得分:1)

  

用户将文本输入到字段中 - 我需要注意什么?

绝对没有!接受用户输入的任何和所有信息都没有问题。

问题在于您使用该输入执行的操作。一些想法:

  1. 连接用户输入以形成SQL查询可以导致SQL injection
  2. 将用户输入应用于固定长度的缓冲区可以导致buffer overflows
  3. 将用户输入发回HTML页面可能会导致cross site scripting
  4. 用作服务器上运行命令的一部分的用户输入可以导致arbitrary command execution
  5. ...
  6. 你知道,用户输入绝对不需要关心。相反,您需要确保不能将用户输入“注入”SQL,缓冲区,HTML或您在服务器上执行的命令。

    此外,您需要确保用户输入实际符合后端的类型规范(即,人们可以轻松操作您的输入以将任何内容发送回服务器,这可能导致在后端生成异常)。最后,如果您将客户端请求链接到后端授权事务,用户可以经常操纵参数来欺骗他们的身份。

答案 2 :(得分:0)

我不知道这是否回答了您的问题,或者您是否正在寻找这种答案,但我通常将发布的变量传递给mysql_real_escape_string,它会逃避所有特殊字符并防止注入。