之前我已经完成了输入清理,以防止客户端上的HTML注入和后端的SQL注入。我现在得到了一个点,我存储的数据并非特别适用于任何客户端,它是一个通用数据存储,但我负责从我的商店消耗的恶意数据。如果你问我,我觉得有点不公平,但这就是生活。
我去了OWASP网站,我找到了我所期待的,没有。在我的头脑中,消毒必须针对一个给定的语法/解释器,并且运行一个通用的,这是不可行的,因为你要么在验证上有漏洞,要么你将使有效的语法成为无效的语法,而另一个是为了消毒另一个语言。
所以我考虑以下几个选项:
捆绑消毒
只需运行您可以想到的主要清理,例如HTML和SQL。对我来说似乎很奇怪,第一个消毒剂可能会破坏第二个消毒剂的输入反之亦然
白名单
在某些时候,这会导致冲突,如果给定的语言需要char,我出于安全原因不支持。
有什么想法?这到底只是一种折衷吗?