【发布时间】:2013-06-01 01:19:50
【问题描述】:
所以我一直在为一个小项目开发一个 API,所有用户输入都不会直接用于 SQL 或显示给用户,所以我需要清理它吗?如果我做了我应该怎么做?
我目前正在检查它们是否为整数、字符串、数组等,但除此之外我还需要做什么吗?
【问题讨论】:
-
对于数据库使用,如果你使用parametrized statements,你真的不需要清理数据
-
您权衡可能发生的风险以及发生的可能性。 Security.stackexchange.com 可能会在这个主题上有很好的答案。
-
理想情况下,您不信任并清理来自用户空间的所有内容.. 以及其他所有内容,您仍然需要加一点盐,并在可能的情况下认为它是可消毒的
-
好的,所以如果传入的数据不会被放入 SQL 查询或有可能显示给用户,我仍然应该对其进行清理吗?
-
@Rambomst 对于外部 API,请遵循 API 的要求;对于 switch/if 语句,如果您只使用它们进行比较应该是安全的;对于会话键(数组键),只需确保它是有效的字符串/整数。乍一看,您的使用非常“安全”。如果您仍然不确定,请通过一些示例/演示更新问题。