![]() |
[AJAX/JS] Wie kaufmännisches "und" an PHP-Datei üb
Hallo,
ich übergebe wie folgt einen längeren Text an eine PHP-Datei (Shoutbox):
Code:
Das geht soweit ganz gut, nur wenn ein "&" in "message" enthalten ist, wird alles danach nicht mit übernommen bzw. ich denke, es wird als eigenen GET-Parameter ausgewertet. Ich könnte natürlich vor der Übergabe an das PHP-Skript die &-Zeichen ersetzen und dies in der PHP-Datei rückgängig zu machen, doch das finde ich sehr unschön.
my_ajax.requestFile = serverFileSubmit + '?page=sb&msg=' + encodeURI(message);
Wie macht man dies ordentlich? Grüße, Matze |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Hast Du es mal mit urlencode() versucht?
|
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Hallo Detlef!
Ich kenne urlencode() nur als PHP-Funktion. Grüße |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
GET ist ganz schlecht! Für möglichst alle Daten, die andere Daten verändern sollte man Post nehmen. Das enthält neue Daten (Shoutboxen), löschen von Daten (Löschen in der Shoutbox) und alles andere. Grund ist die Sicherheit. Genannt wird der Vorgang des Ausnutzen der Sicherheitslücke
![]() Ein User im Forum macht in seine Signatur folgenden Code:
Code:
Sobald der Administrator (Der User mit der ID 1 in dem Fall) einen Post von diesen User sieht, versucht der Browser dessen Bild in seiner Signatur zu laden. Auch wenn es sich dann dabei nicht um ein Bild handelt, so wird diese Webseite trotzdem unter den Rechten des Administrators ausgeführt. Und er löscht sich selbst. ;-)
[img]http://www.example.com/index.php?delete_user=1[/img]
Hope it helps! :-) Edit:// Zusätzlich muss man sagen, dass GET auch nur eine begrenzte Länge hat. Ich bin mir aber nicht ganz sicher wie groß diese ist. Für eine Shoutbox sollte es aber eigentlich reichen. ... Aber wie gesagt. Besser nicht. Mit freundlichen Grüßen, Valle |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Hallo!
Also das ist Quatsch, sorry. Es ist ja nicht so, dass die Daten willkürlich weiterverarbeitet werden, sondern Berechtigungen werden in der PHP-Datei ordentlich geprüft. Und GET ist nicht unsicherer als POST, da man problemlos auch POST-Daten an eine URL senden kann. Grüße Edit: Ich habe mal was von 3000 Zeichen gelesen und das reicht mir. |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Zitat:
Klar ist POST auch zu fälschen. Allerdings ist das nochmal eine andere Sache als mit GET. Ansonsten eben einen Shared Key benutzen. Dann hast du auch das Problem nicht mehr. Meiner Meinung nach ist es zumindest ein wenig sicherer, direkt POST zu benutzen. Ich mein's doch nur gut. ;-) Mit freundlichen Grüßen, Valle |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Hallo
Zitat:
Ich weiß, dass du es nett meinst, aber in Sachen Sicherheit bin ich so verantwortungsbewusst wie nur möglich. Gut, Fehler kann man nie ausschließen, aber solche grob fahrlässigen Dinge mache ich (normalerweise) nicht. ;) Grüße Edit: Übrigens geht es mit AJAX gar nicht anders als über GET/POST. |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Zitat:
Zitat:
Mit freundlichen Grüßen, Valle |
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Zitat:
|
Re: [AJAX/JS] Wie kaufmännisches "und" an PHP-Date
Moin,
ich misch mich ganz kurz ein: Zitat:
Code:
einbetten wuerde, waere der User automatisch ausgeloggt. Aus dem Grund wird einerseits das Fragezeichen als Trennzeichen zwischen URL und Parametern blockiert, zusaetzlich wird beim Logout auch die korrekte SID verlangt (guck dir einfach den Logout-Link an, dann wirst du sehn was ich meine). Das reicht schon um das Script abzusichern, und zwar ohne eine laestige Nachfrage "willst du dich wirklich ausloggen" und ohne laestigen POST-Request.
http://www.delphipraxis.net/login.php?logout=true
That said, fuer bestimmte Dinge hat er natuerlich Recht. Wenn du alle Parameter in die URL reinwirfst, hast du spaetestens bei den Serverlogs ein Problem. Die Parameter werden naemlich mitgeloggt, wenn sie ueber GET reinkommen; wenn sie ueber POST kommen werden sie nicht geloggt. Das ist einerseits wichtig, um Passwoerter nicht zu kompromittieren, andererseits haelt es auch die Logfiles klein. Stell dir vor jeder Beitrag in der DP wuerde ueber GET reingehn, die Logfiles waeren uebelst gross. Um auch eine sinnvolle Antwort zu geben: du verwendest ![]() ![]() encodeURI wird verwendet, um eine komplette URI zu escapen, und die Parameter dabei heile bleiben sollen. encodeURIComponent wird verwendet, um einen einzelnen Parameter so zu escapen, dass ein &-Zeichen keinen Schaden mehr anrichten kann. Greetz alcaeus [add] Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz