【问题标题】:Laravel pass parameter from form to controller through (not via address line/get)?Laravel 通过(不是通过地址行/获取)将参数从表单传递到控制器?
【发布时间】:2015-10-21 15:20:26
【问题描述】:

我有一个表格,打开方式如下:

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

在我的控制器中:

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

我的路线:

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

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

目前的 URL 如下所示:

http://mywebsite.com/process/question_for_example

这意味着任何人都可以替换“question_for_example”并进行更改。

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

    anyting from post 或 get all 都可以被捕获,有一种方法可以让您的数据更安全,例如:

    1. 您的客户端和服务器有一个像$saltKey = 'only myselef know string' 这样的密钥
    2. 使要验证的加密字符串 $encrypt = md5($saltkey.$questions.$clientIPOrOtheruniqueStrings)
    3. 改变你的路线 Route::post('process/{questions}/{encrypt}', 'AppController@processApplication' );
    4. 发布数据需要 $encrypt
    5. 在您的服务器端验证加密:if (Input::get('encrypt') === md5($saltkey.Input::get('question').$clientIPOrOtheruniqueStrings)) { }

    只是一个加密的例子,希望这能给你一个想法

    【讨论】:

      猜你喜欢
      • 2019-11-01
      • 2014-10-05
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2019-07-16
      • 2018-02-21
      相关资源
      最近更新 更多