|
|
1
4
输入和输出没有通用的“过滤”。
验证的目的是确保输入在合理的范围内,比如字符串的长度、美元金额的数字性,或者正在更新的记录是由执行更新的用户拥有的。这是为了保持数据的逻辑一致性,防止人们做一些事情,比如将他们购买的产品的价格归零,或者删除他们不应该访问的记录。它与“过滤”或转义输入中的特定字符无关。
转义是一个上下文问题,只有在处理可能被注入某些字符所毒害的数据时才真正有意义。转义发送到浏览器的数据中的HTML字符。转义发送到数据库的数据中的SQL字符。在JavaScript中写入数据时转义引号
|
|
|
2
0
最好的办法是两者都过滤掉。只做一个会让你更容易漏掉一个案子,并且会让你面临其他类型的攻击。 如果只进行输入筛选,攻击者可能会找到绕过输入并导致漏洞的方法。这可能是有权访问数据库的人手动输入数据,也可能是攻击者通过FTP或其他未经检查的通道或许多其他方法上载文件。 如果您只做输出过滤,那么您可能会面临SQL注入和其他服务器端攻击。 最好的方法是过滤输入和输出。它可能会导致更多的负载,但大大降低了攻击者发现漏洞的风险。 |
|
|
3
-1
听起来像语义学。不管怎样,重要的是要记住确保坏数据不会进入系统。 执行输出过滤而不是输入过滤需要SQL注入。
|
|
|
Nifas · Python:将用户输入用作dict键时出现键错误 8 年前 |
|
|
LalaJava · Java方法字符模式-初学者 8 年前 |
|
|
Richard Yudkiss · 重置之前,基本计算器需要多个输入 8 年前 |
|
|
f.lechleitner · R-多行上的readline提示 8 年前 |
|
|
JoshingYou · 我无法运行此程序[已关闭] 8 年前 |
|
|
Nic · 用于记录用户选择的响应图像 8 年前 |