不完全有信心我已经理解了Laravel形式的安全性。例如,如果表单包含 <input type="hidden" name="user_id">
那么显然黑客可以在提交更新之前更改该值。 虽然我在CSRF看了here,但我还没有完全理解这是否足够的保护?Laravel 5/Form安全(需要澄清)
E.g.考虑到上述情况,如果我访问网站并打开表单以编辑记录,我可以查看但不能更改,并恶意更改“user_id”,表单是否受{{ csrf_field() }}
保护或我必须雇用一些进一步的安全性,如Crypt::encrypt($id)
隐藏user_id(保存在数据库中)和Crypt::decrypt($id)
?
在客户端浏览器中显示行标识(如用户标识)是否被认为是不良做法(即使所有内容都是通过https发送的)?
很多谢谢
csrf并没有真正帮助您提及的特定情况。你想要做的是检查后端是否正在发送的ID是否与您所期望的相同。 您也可以对该用户标识进行编码,然后在后端对其进行解码。 全部取决于你实际想要达到的目标吗? – matiit
在这里,https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)阅读了解csrf是什么以及csrf令牌会为你辩护。 – matiit
如果'user_id'字段不会被用户*和*在表单中看不到,为什么发送给客户端?将'user_id'服务器端放在SESSION上,而不是客户端上。 – ThoriumBR