php输入处理:除了邮件,查询和文件处理还有风险吗?

时间:2011-12-20 20:05:43

标签: php

我已经写了很长一段时间的PHP,直到现在才真正想过它但是如果我只是在if语句中使用一个原始的post变量它是否有一点点伤害的机会?或者它只对邮件,mysql或文件字符串有害?

4 个答案:

答案 0 :(得分:0)

只要您没有将用户设置变量传递给exec(),您就是安全的。它在邮件,mysql,文件字符串中存在危险的原因是因为PHP只能将数据传递给这些数据并且从这些传递数据并且所有这些都是“愚蠢的”,它们完全按照它们的要求去做。因此,如果你告诉他们做一些危险的事情他们会。与XXS相同,如果您接受用户输入并将其精确显示到用户可以在JS或iframe中添加的页面或者将大量危险内容添加到您的网站中

答案 1 :(得分:0)

没有。除非PHP中存在错误,否则字符串本身无害。

如果您对数据做出特定假设并在敏感过程中使用它而不验证它们,则字符串可能会有害。考虑一下你在SQL语句中插入的值,文件名,eval中使用的片段(你永远不应该使用它们)......

你基本上可以说这些字符串都是以某种方式在执行中执行或使用的。 如果您从用户那里获得输入,并在这些情况下使用该输入而未经验证,则您将面临风险。

在if语句中(我假设您正在讨论字符串比较,如if (userInput === 'whatever'))这根本不是问题。在这种情况下,您只是在比较数据而不执行任何操作。

答案 2 :(得分:-1)

不要相信任何用户生成的数据,包括url params,查询参数,发布数据,Cookie甚至请求标头。

最简单的建议是:始终过滤输入并清理输出。

答案 3 :(得分:-1)

基本上,信任用户输入绝不是一种选择。它来自哪里并不重要; HTML表单,所有HTTP请求及其标题,cookie以及您能想到的其他内容。

如果您要使用的数据来自用户输入,则清理,验证,检查并确保您获得所需内容,并且不会以任何方式损害您的应用程序。