使用Tastypie清理用户输入的最有效方法是什么?现在,如果用户输入类似嗨,HTML标记会被保存,所以当它显示时,文本显示为粗体。除了更改每个资源的obj_create之外,我将如何清理所有输入?Tastypie消毒输入?
此外,由于我是网络安全领域的新手,我是否应该在前端对用户的输入进行消毒?我不确定在发送POST请求到tastypie API之前是否应该清理输入,或者在tastypie处理输入时是否应该清理输入?
编辑:我确实发现,我可以在我的下划线模板中使用<% - %>而不是<%=%>来转义HTML。为什么不下划线默认做这个?我觉得这是一个很大的安全风险。 如果我不小心忘了在某个地方做这个,那么我就搞砸了。
我认为上述问题解决了前端安全问题,但是后端呢?有没有办法可以看到我是否容易受到SQL注入?当我执行POST/PUT请求时,tastypie会对输入进行消毒吗?
通过过滤|安全,你是指Django模板?我没有使用Django模板来渲染我的模型。我正在使用下划线模板。另外,在模型中我没有mark_safe = True,那么HTML标签是如何经历的呢?我会明白,如果下划线不逃避HTML,但不会Django不存储HTML标签? – egidra
没有关于上述评论。我编辑了原文。 – egidra
我支持我的评论。默认情况下,Django永远不会显示不安全的内容。在将数据存入数据库之前,我不会改变输入,我只是不会显示它。很高兴知道这是坏的默认值,而不是我们! :)由于不安全的输入导致django核心或tastypie中没有已知的SQL注入漏洞。在调用SQL之前,我们正确地转义了事情 –