Wie verhindern Sie, dass ein Endbenutzer ein Objekt durch einen Überposting -Angriff in C#/. NET durch seinen PrimärschlC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie verhindern Sie, dass ein Endbenutzer ein Objekt durch einen Überposting -Angriff in C#/. NET durch seinen Primärschl

Post by Anonymous »

Ich bin mir sicher, dass dies eine offensichtliche Antwort ist, aber ich lerne zum ersten Mal C# und .NET. In Microsofts Tutorial für ASP.NET Core MVC zeigt das Beispiel die ID -Eigenschaft eines Objekts in der Bearbeitungsbindung. < /P>

Code: Select all

[HttpPost]
[ValidateAntiForgeryToken]
public async Task Edit(int id, [Bind("ID,Title,ReleaseDate,Genre,Price")] Movie movie)
{
if (id != movie.ID)
{
return NotFound();
}
// other stuff
}
< /code>
In der Ansicht gibt es auch ein verstecktes Eingangsfeld für die ID; Ich verstehe, warum das notwendig ist. Wie auch immer, ich folgte und verifizierte, indem ich feststellte, dass dieses versteckte Feld im HTML -Viewer meines Browsers und das [url=viewtopic.php?t=12045]Ändern[/url] des Werts der ID in diesem versteckten Feld in eine andere bekannte gültige ID geändert werden konnte, konnte ich effektiv Änderungen einreichen, die auf ein anderes Objekt angewendet würden, als auf dem einen, den ich ursprünglich geklickt hatte, um zu bearbeiten. Dies scheint auf einer Produktionsstelle sehr gefährlich zu sein. Wenn ich die ID aus der Binde entnommen habe, bekomme ich einen 404, wenn ich versuche, meine Änderungen einzureichen. Daher ist es offensichtlich nicht so einfach. Ich gehe davon aus, dass dies daran liegt, dass die iF (id! = Movie.id) 
prüft fehlschlägt, aber ich bin mir nicht ganz sicher.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post