Auf der Seite wird es mehrere Beiträge von einem Benutzer geben. Jeder Beitrag hat eine ID #, um ihn zu identifizieren, der beim Bearbeiten oder Löschen des Beitrags verwendet wird. Mit Blade kann ich es so einrichten, dass versteckte ID-Div nur angezeigt wird, wenn der authentifizierte Benutzer auf seinem eigenen Profil ist (da nur sie die Beiträge bearbeiten oder löschen können).Laravel Hide Div ID von der Ansicht
Allerdings habe ich auch eine Sympathie-Funktion, die auch diese versteckte ID Div verwendet. Ich möchte nicht, dass jemand die Seitenquelle anzeigt, die ID ändert und dann auf die entsprechende Schaltfläche klickt. Gibt es eine Möglichkeit, die ID in die Ansicht aufzunehmen, aber nicht zu ändern?
Ich könnte versuchen, einige Validierung auf jeder wie wie der Benutzer, Körper, Zeit gebucht, und ID und wenn das nicht übereinstimmt dann einen Fehler zu werfen. Neugierig, wenn es einen besseren Weg gibt.
Ausblick:
<div class="post-like">
<a href="{{ route('post.like', ['postId' => $post->id]) }}" class="post-like-a">Like</a>
</div>
Controller:
Die $ postID ist, dass versteckte 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();
}
Was ist die typische Best Practice, wenn Informationen wie die Benutzer-ID an den Controller gesendet werden müssen? –
Es gibt immer einen Convenience-Security-Trade-Off, der kontextbezogen zur Anwendung ist. Im Allgemeinen ist es wahrscheinlich eine gute Idee, interne DB-IDs zu maskieren - so würde eine UUID funktionieren. Vielleicht möchten Sie auch mit [HMAC-Signaturen] erkunden (http://security.stackexchange.com/questions/20129/how-and-when-doi-use-hmac/20301) – avip
Ich werde Ihre Vorschläge prüfen. Ich kann die ID des Benutzers von allen außer sich selbst verstecken, also ist das in Ordnung. Sie müssen herausfinden, UUID für die Post-ID. –