如何在laravel中的链接按钮中隐藏URL

问题描述 投票:2回答:3

我正在使用laravel 5.4,我有一个像这样的代码

<td class="fit">
  <a href="{{url('addApprovalRequestor/'.$approval_requestor_id.'/'.$user->id)}}" 
     class="btn btn-primary btn-sm">Add
  </a>
</td>

Google Chrome Inspect Element

enter image description here

我的看法

enter image description here我觉得我使用该代码并不安全,它有一种方法可以隐藏代码的url而无需使用href或laravel中的表单

php laravel laravel-5.4
3个回答
3
投票

回答你的问题是POST请求

路线:

将您的路由类型从GET更改为POST

Route::post('/addApprovalRequestor','controllerName@methodName');

使用带有帖子请求的表单,然后将隐藏网址

<form action="{{url('/addApprovalRequestor')}}" method="post">
     {{csrf_field()}}
     //save values in hidden input and this form will send it to server
     <input type="hidden" name="approval_requester_id" value="{{$approval_requester_id}}">
     <input type="hidden" name="user_id" value="{{$user->id}}">
   <button type="submit">submit</button>
</form>

调节器

function methodName(Request $request){
   dd($request->request);
   //do what you want here
}

3
投票

我完全同意@ErkanÖzkök和@lofihelsinki,但如果你不想通过chrome检查,你可以尝试禁用右键单击按钮。

这是帮助代码段 -

<html>
<head>
<script type="text/javascript">
    if (document.addEventListener) { // IE >= 9; other browsers
        document.addEventListener('contextmenu', function(e) {
            
            e.preventDefault();
        }, false);
    } else { // IE < 9
        document.attachEvent('oncontextmenu', function() {
            alert("You've tried to open context menu");
            window.event.returnValue = false;
        });
    }
</script>
</head>
<body>
Lorem ipsum...
</body>
</html>

2
投票

可以始终利用浏览器端的内容。

这样做的一种方法是将值传递给javascript并进行像这样的点击事件=>

<a href="#" 
     class="btn btn-primary btn-sm" onclick="go_to_link(event)">Add
  </a>

在javascript =>中

let link = {{url('addApprovalRequestor/'.$approval_requestor_id.'/'.$user- >id)}};

function show_more_menu(e) {
    e.preventDefault();
    window.location = link;
 }

但同样没有办法隐藏javascript代码。 JS-Scripts在您的浏览器中运行。为了避免这种情况,您可以尝试压缩它们,以避免用户轻松阅读。 => here

您也可以禁用以下所有操作。

  • 右键点击
  • F12
  • Ctrl + Shift + I
  • Ctrl + Shift + J.
  • Ctrl + Shift + C.
  • Ctrl + U. <body oncontextmenu="return false;"> document.onkeydown = function(e) { if(event.keyCode == 123) { return false; } if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) { return false; } if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) { return false; } if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) { return false; } if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) { return false; } }
© www.soinside.com 2019 - 2024. All rights reserved.