在页面上,用户会有几个帖子。每个帖子都有一个id#来标识在编辑或删除帖子时使用的编号。使用刀片服务器,我可以让隐藏的ID div仅在经过身份验证的用户使用自己的个人资料时才显示(因为只有他们被允许编辑或删除帖子)。Laravel从视图中隐藏Div ID
但是,我也有一个喜欢的功能,也使用该隐藏ID的div。我不希望有人查看页面源,更改ID,然后点击类似按钮。有没有办法在视图中包含ID,但不允许更改ID?
我可以尝试做一些验证,如匹配用户,正文,发布时间和ID,如果不匹配,然后抛出一个错误。好奇的是,如果有更好的方法。
查看:
<div class="post-like">
<a href="{{ route('post.like', ['postId' => $post->id]) }}" class="post-like-a">Like</a>
</div>
控制器:
的$帖子ID是隐藏的ID的div
public function getLike($postId)
{
$post = Post::find($postId);
if (!$post) {
return redirect()->back();
}
if (Auth::user()->hasLikedPost($post)) {
return redirect()->back();
}
$like = $post->likes()->create([]);
Auth::user()->likes()->save($like);
return redirect()->back();
}
当需要诸如用户ID等信息发送给控制器时,典型的最佳实践是什么? –
对于应用程序而言,始终存在一种便利安全性交易。一般来说,屏蔽内部数据库ID可能是一个好主意 - 所以UUID可以工作。您可能还想探索使用[HMAC签名](http://security.stackexchange.com/questions/20129/how-and-when-do-i-use-hmac/20301) – avip
我会研究您的建议。除了他们自己,我可以隐藏用户的ID,所以没关系。需要弄清楚帖子ID的UUID。 –