簡體   English   中英

如何在Laravel 5.5中加密用於搜索的GET URL?

[英]How to encrypt GET url for search in Laravel 5.5?

我陷入了這個問題,我不知道如何加密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);

    }
}

這是我的路線/ web.php

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

這是我的mahasiswaIndex.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>

您可以加密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;

注意 :您可以使用Crypt::encrypt($parameter)加密url參數,並使用Crypt::decrypt($parameter)

您確定這確實是您所需要的嗎? 出於安全考慮,使用HTTPS協議,該協議對客戶端和服務器之間的所有通信進行加密。 如果只想從瀏覽器地址欄中隱藏原始數據,則可以使用POST方法而不是GET。

如果要加密輸入字段。 您必須先在javascript / jquery AJAX中進行操作,然后再將關鍵字發送到url結果。 假設您具有控制器和路由來進行如下加密:

localhost:8000/Akademik/encrypt

之后,您將在var some_encrypted_keyword上獲得加密的關鍵字,然后再次通過Ajax GET發送到url:

localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword

問我什么。 希望這能解決您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM