防止html检查员的安全风险?

时间:2013-03-08 13:35:55

标签: javascript html django

我最近搞乱了一个django本地服务器项目,我有一个像

这样的输入
<form....{% csrf_token %}
....
<input type="text" value="foo" readonly />
....
</form>

现在输入的值应该保持我想要的方式(“foo”),但是我使用谷歌浏览器检查并且能够更改只读输入的值并将新值传递给服务器,保存了坏的价值。

所以我有几个问题:

  1. 防止此类安全风险的一般规则或心理检查清单是什么?

  2. 我可以使用JavaScript控制台并破坏这样的数据吗?更新:YEP。

  3. 所以基本上我必须在服务器端进行所有检查吗?

  4. 如果不是3,那么受html / js检查员保护的客户端验证是什么?

  5. 编辑:

    到目前为止,我猜测答案是肯定的。所以我还应该为客户端安全/检查而烦恼吗?他们真的会让我更安全,还是只是一种虚假的安全感(这很糟糕)?我应该进行客户端检查,以便在服务器端保存一些检查,这样我的性能可能会更好吗? 基本上:我应该做多少客户端检查?

4 个答案:

答案 0 :(得分:2)

为了安全起见,您无法在Javascript或客户端进行任何回复。只需确保您的服务器安全。

例如,您可以telnet到端口并将适当的数据发送到服务器。这将阻止并通过Javascript(或任何其他技术(在客户端)进行检查。

只需使用Javascript,即可让客户在客户端体验更愉快,更具响应性。不要将它用于安全。

答案 1 :(得分:1)

您的服务器代码必须是最终权限,它根本不能依赖客户端所做的验证质量。查看所有客户,无论是HTML还是其他客户都容易受到狡猾用户和易犯错误的程序员的影响。

答案 2 :(得分:1)

  1. 永远不要相信用户发送的数据(cookie,会话,HTTP请求中的参数......)。用户发送的所有数据都可以修改。

  2. 当然可以

  3. 还有待完成。

答案 3 :(得分:1)

问问自己为什么你首先需要那个只读价值。据推测,当用户第一次请求表单时,是您的代码生成它。那么,当用户请求用户提交的表单时,您的代码可用的内容是什么?应该没有任何东西可以让你得出结论,即在提交时可以很容易地生成该字段,而不需要在表单中出现。