Laravel 5.1中的Url和表单安全性


Url and Form security in Laravel 5.1

问题出在哪里

  1. 主键存在于Url中,因此可以通过轻松更改Url来轻松查看其他记录的数据。

  2. 呈现的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;)