【问题标题】:How to encrypt GET url for search in Laravel 5.5?如何在 Laravel 5.5 中加密 GET url 以进行搜索?
【发布时间】:2018-03-23 16:37:05
【问题描述】:

我陷入了这个问题,我不知道如何在 Laravel 5.5 中加密 URL 以进行搜索...结果如下:

localhost:8000/Akademik/Mahasiswa?cari=some_keyword

但我想要这样:

localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword

喜欢:

localhost:8000/Akademik/Mahasiswa?cari=Kas6F8ajhasdhhfbdgshek

这是我的 MahasiswaController.php

    public function index(Request $request)
{   
    if ($request->get('cari') == null) {

        $datas = Mahasiswa::paginate(10);
        return view('Akademik.Mahasiswa.mahasiswaIndex', compact('datas'))->with('no',($request->input('page',1)- 1)*10);

    } else {
        $cari = $request->get('cari');
        $datas = Mahasiswa::where('nama','LIKE','%'.$cari.'%')->paginate(10);
        return view('Akademik.Mahasiswa.mahasiswaIndex', compact('datas'))->with('no',($request->input('page',1)- 1)*10);

    }
}

这是我的route/web.php

Route::Resource('Akademik/Mahasiswa','Akademik\Mahasiswa\MahasiswaController');

这是我的ma​​hasiswaIndex.blade.php(搜索表单)

 <div class="col s4 m6 right">
    {{ Form::open(array('url' => 'Akademik/Mahasiswa','method' => 'get')) }}
        <div class="row">
          <div class="input-field col s12">
             {{ Form::text('cari',null,['id' => 'cari','class' => 'col s12']) }}
           <label for="cari">Cari</label>
          </div>
        </div>
    {{ Form::close() }}
</div>

【问题讨论】:

  • 使用POST请求不需要加密,https
  • 您解决问题的尝试在哪里?
  • @LukePark 我尝试了 2 天的搜索和谷歌搜索,但没有得到任何解决方案,对不起,我是 laravel 的新手
  • @MarkBaker 足够安全吗?
  • 除非您设置不正确,否则它足以安全地发送密码......这与我的银行使用的方法相同

标签: php laravel encryption routes laravel-5.5


【解决方案1】:

如果您想加密您的输入字段。在将关键字发送到 url 结果之前,您必须在 javascript/jquery AJAX 中执行。假设您有控制器和路由来进行这样的加密:

localhost:8000/Akademik/encrypt

之后,您将在 var some_encrypted_keyword 上加密关键字,然后通过 Ajax GET 再次发送到 url:

localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword

问我什么。希望这能解决你的问题

【讨论】:

    【解决方案2】:

    您确定它确实是您需要的吗?出于安全考虑,使用了 HTTPS 协议,该协议对客户端和服务器之间的所有通信进行加密。如果您只是想从浏览器地址栏中隐藏原始数据,您可以使用 POST 方法而不是 GET。

    【讨论】:

    • 感谢您的回答..是的..这只是为了学习目的...因为我是 laravel 的新手.. :)
    【解决方案3】:

    您可以加密您的 url 参数并在您的控制器中解密它。你可以试试这个:

    在您看来:假设您的参数是 cari 或更多您可以加密的参数。

    <?php
            $parameter =[
                'cari' => (value of input field),
            ];
        $parameter= Crypt::encrypt($parameter);
    ?>
    <a href="{{url('/url/',$parameter)}}" target="_blank">a link</a>
    

    您的路线将是:

    Route::get('/url/{parameter}', 'YourController@methodName');
    

    在你的控制器中,你可以解密你的参数:

    public function methodName($cari){
        $data = Crypt::decrypt($cari);
      }
    

    您必须在控制器顶部使用 Crypt namespace 作为

    use Illuminate\Support\Facades\Crypt;
    

    注意:url参数可以用Crypt::encrypt($parameter)加密,Crypt::decrypt($parameter)解密

    【讨论】:

    • 感谢回答,,,如何将输入字段数据发送到此参数'cari' =&gt; (value of input field)
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2017-05-12
    • 2018-08-01
    相关资源
    最近更新 更多