Laravel通过形式传递参数到控制器(不是通过地址线/ get)?

时间:2015-10-21 15:20:27

标签: php laravel model-view-controller laravel-5

我有一张表格,开头就是这样:

{!! Form::open(array('route' => array('admin.application.process', $questions), 'method' => 'post')) !!}

在我的控制器中:

public function processApplication($questions) {
    ...
}

我的路线:

Route::post('process/{questions}',
    'AppController@processApplication'
);

但是我想以更安全的方式转移$ question,因此会员无法改变它。

目前,网址如下所示:

http://mywebsite.com/process/question_for_example

这意味着任何人都可以替换" question_for_example"并改变它。

有没有办法通过POST将参数传递给控制器​​中的进程操作,所以它对用户隐藏了?

谢谢!

1 个答案:

答案 0 :(得分:0)

任何来自post或get all都可以捕获,有一种方法可以使您的数据更安全,例如:

  1. 您的客户端和服务器都有$saltKey = 'only myselef know string'
  2. 之类的密钥
  3. 使加密字符串验证$ encrypt = md5($ saltkey。$ questions。$ clientIPOrOtheruniqueStrings)
  4. 改变你的路线 Route::post('process/{questions}/{encrypt}', 'AppController@processApplication' );
  5. 发布数据采取$ encrypt
  6. 服务器端的
  7. 验证加密:if (Input::get('encrypt') === md5($saltkey.Input::get('question').$clientIPOrOtheruniqueStrings)) { }
  8. 只是加密的一个例子,希望这会给你一个想法