问题出在哪里
主键存在于Url中,因此可以通过轻松更改Url来轻松查看其他记录的数据。
呈现的html存在隐藏字段。任何人都可以基于此隐藏字段轻松更改其他记录。
编辑页面时。我的Url如下所示
http://localhost/Category/3
下面是渲染的Html
<form method="POST" action="http://localhost/UpdateCategory" accept-charset="UTF-8">
<input name="_token" type="hidden" value="AmAXKmqtct6VOFbAVJhKLswEtds4VwHWjgu3w5Q8">
<input name="CategoryID" type="hidden" value="3">
<input required="required" name="Category" type="text">
<input class="btn btn-success" type="submit" value="Update">
</form>
请在Laravel 5.1 中建议一些Url和表单安全性
为了避免此类事件,我们需要处理许多工作。
修复1:如果你不想通过更改url 来访问用户的
(即,直接在url中传递id)
您应通过过滤请求
if($_SERVER['HTTP_REFERER']!='')
{
}
else
{
exit;
}
如果你希望,你应该在你的中间件中,甚至在你的视野中
修复2:当您看到表单源时,永远不要担心可见的_token
这只是laravel应用程序生成的令牌,用于识别请求是否来自经过身份验证的源。
如果您编辑代币并通过表格,您肯定会收到CSRF代币不匹配异常
事实上,这是拉拉威尔的一大特色。
有趣的一点:你也可以在浏览器的标题中找到一些东西;)
乐于使用Laravel;)