Wie Verhalten Pufferüberlauf in PHP/Python?
Hier ist ein Beispiel in c:
#include <stdio.h>
#include <string.h>
void bad() {
printf("Oh shit really bad~!\r\n");
}
void foo() {
char overme[4] = "WOW";
*(int*)(overme+8) = (int)bad;
}
int main() {
foo();
}
InformationsquelleAutor user198729 | 2010-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Tatsache, dass Python und PHP interpretiert werden, wie vorgeschlagen, die von anderen nicht wirklich der Punkt. Der Punkt ist, dass fast alle APIs und Semantiken, die Sie setzen, sind stark Fehler-geprüft, wodurch es unmöglich wird, zu haben, ausgenutzt zu undefiniertem Verhalten. Auch wenn Sie kompilieren Sie die Sprachen, wäre es immer noch unmöglich. Dies bedeutet nicht, dass Sie nicht setzen unsichere APIs, die können tun, was auch immer. In der Tat, mit Python ctypes-Modul, sollte es möglich sein, erstellen Sie ein ähnliches Verhalten, aber deutlich schwieriger, so zu tun durch Unfall.
InformationsquelleAutor Ants Aasma
Als PHP ist eine Skriptsprache und hat keine Zeiger und der string-Typ ist binary safe, solche Dinge funktionieren nicht in PHP.
Aber warum würden Sie wollen, um so etwas zu tun?
(oh, es gibt vielleicht Fehler in PHP was in einem Puffer-überlauf, aber das ist nichts, dass canbe verlassen, in irgendeiner Weise und in der Regel behoben wird, ganz ffast...)
InformationsquelleAutor johannes
Tut uns Leid: Sie haben eine Schwachstelle in Python. Leider, es ist auch so gewollt, so wenig kann sein getan über es. Vielleicht sollten Sie bleiben mit C.
Als Martin v. Löwis sagte:
PS-Wow. Es scheint, wie vor ein paar Monaten, ich habe gelesen, dass post, und doch ist es schon 7 Jahre und ein Tag.
InformationsquelleAutor tzot
Etwas ähnliches in PHP wird nicht in der gleichen Verhalten.
PHP interpretiert wird, und prüft immer, ob die operation, die Sie tun oder nicht gültig ist.. So kann man nicht - beispielsweise - einem Pufferüberlauf.
InformationsquelleAutor Andreas Bonini
Weil php,python und jede interpretierte Sprache zunächst durch einen Dolmetscher, und Sie haben nicht den vollen Zugriff auf den Speicher dieser Art von Sprachen werden nicht zulassen, Sie zu tun einige Art der Spiele wie der code, den Sie geschrieben.
InformationsquelleAutor streetparade
InformationsquelleAutor Eu Insumi