Kapitel 33. Daten und Objekte verteidigen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Obwohl ein Ziel für verschiedene Formen von Angriffen ist, sind Daten und Objekte im Anwendungscode eigentlich recht einfach zu schützen. Abgesehen von der Speicherung von Daten in einer Datenbank werden die meisten Objekte, mit denen Programmiersprachen interagieren, entweder ephemer (im Speicher) oder persistent (im Dateisystem) gespeichert.
Da Programmiersprachen Operationen hauptsächlich im Speicher durchführen, werden die Daten bei persistenten Dateidaten meist für die Dauer der Operation in den Speicher gebracht. Daher gibt es viele Fälle, in denen Abwehrmaßnahmen, die ephemeren Daten zugutekommen, auch Dateisystemdaten zugutekommen.
Verteidigung gegen Massenzuweisung
Angriffe mit Massenzuweisungen sind relativ einfach zu verhindern, wenn bei der Programmierung einer Webanwendung auf Sicherheit geachtet wird. Betrachte die folgende Massenzuweisungsschwachstelle:
/*
* This is a server-side API endpoint for updating player data
* for the web-based video game "MegaGame".
*/
app
.
post
(
"updatePlayerData"
,
function
(
req
,
res
,
next
)
{
// if client sent back player state data, update in the database
if
(
!!
req
.
body
.
data
)
{
db
.
update
(
session
.
currentUser
,
req
.
body
.
data
);
return
res
.
sendStatus
(
200
);
// success
}
else
{
return
res
.
sendStatus
(
400
);
// error
}
});
Diese Schwachstelle besteht, weil der Entwickler ...
Get Web Application Security, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.