Ska*_*rXa 5 php forms security laravel laravel-4
我使用刀片进行编辑来编辑资源,如下所示:
{{Form::model( $post ,['action'=> ['PostController@update', 'id' => $post->id], 'method' => 'post'])}}
Run Code Online (Sandbox Code Playgroud)
这会生成一个带有动作的表单
http://example.com/posts/edit/123
Run Code Online (Sandbox Code Playgroud)
我的领域,有文字和隐藏的输入
看到这个网址,恶意用户很容易更新其他帖子.
如果使用检查员操作id,我如何保护路线以使其失败?是否有内置的wat来标记id以确保它匹配?这也适用于所有隐藏的输入吗?
谢谢
编辑:
关于我的隐藏字段用法的示例:我的帖子通常是问题和答案,当用户尝试添加问题的答案时,我将question_id设置为隐藏字段,并且我想检查它是否被操纵.
Lau*_*nce 10
Limonte的答案是正确的,以确保编辑其他人的帖子的能力 - 你应该总是那样做.要回答你问题的后半部分:
我将question_id设置为隐藏字段,我想检查它是否被操纵.
问题是您永远不能信任客户端提供给您系统的数据.你必须始终认为它已被篡改.
帮助最小化风险的一个选项是您可以使用Laravel的加密服务来执行此操作:
{{ Form::hidden('question_id', Crypt::encrypt($question_id)) }}
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中
$question_id = Crypt::decrypt(Input::get('question_id'));
Run Code Online (Sandbox Code Playgroud)
只需确保在app.php配置文件中设置了随机应用程序加密密钥
| 归档时间: |
|
| 查看次数: |
4848 次 |
| 最近记录: |