这是我刚才的问题Get model id from route/url和解决方案是非常聪明的,但恐怕这如何检查是否隐藏表单字段对应型号ID
{!! Form::hidden('event_id', $event->id) !!}
用户AntoineB说操纵的:“它如果你正确地保护你的应用程序不能被操纵,这是做到这一点的最好方法。“
我能做些什么来保护我的应用程序免于操作此字段并检查它是否与用户实际点击的事件ID相对应? 如何查看该字段?
这是我刚才的问题Get model id from route/url和解决方案是非常聪明的,但恐怕这如何检查是否隐藏表单字段对应型号ID
{!! Form::hidden('event_id', $event->id) !!}
用户AntoineB说操纵的:“它如果你正确地保护你的应用程序不能被操纵,这是做到这一点的最好方法。“
我能做些什么来保护我的应用程序免于操作此字段并检查它是否与用户实际点击的事件ID相对应? 如何查看该字段?
正如我评论你不能为您网站上的所有事项标识都可以在浏览器中使用控制台的所有用户可见之前。
你可以做的是编码/加密您的事项标识(Laravel提供加密)
{!! Form::hidden('event_id', encrypt($event->id)) !!}
而且当您发送POST/GET在服务器端
$decrypted_event_id = (int)decrypt($request->input('event_id'));
$event = Event::find($decrypted_event_id);
你也可以做出具体的限制user for special event_ids 但是,Encypting会隐藏ID的实际值 加密并不能保护您,但会让用户更难理解您的事件具有什么ID。
这是替代第三方库哈希IDS click你可以,如果使用这个不喜欢的laravel加密较长的字符
我正在使用中间件限制用户,以便部分是安全的....但是那个有权访问这个事件的用户......他理论上可以通过浏览器改变隐藏的字段值......所以也许这个加密和解密可能是解决方案 – lewis4u
如果你已经限制其他特定事件的用户,以及害怕允许用户对表单进行更改,那么我认为yes加密值可能有助于其他用户无法访问它 – Froxz