SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 19.02.2008, 10:26:21
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: $_POST faken

Zitat:
Zitat von gysi Beitrag anzeigen
So ich hab jetz überall wo SQL statements mit der POST / GET Variable ausgeführt wurden den String mit htmlspecialchars umgewandelt. Ich hoffe es sind jetz keine SQL Injections mehr möglich.
gnarf. hast du auch nur im ansatz begriffen, was sql-injections sind bzw. was htmlspecialchars() bewirkt?

Zitat:
Kennst du vielleicht eine Seite wo auf das Thema PHP / Datenbank -> Sicherheit näher eingegangen wird?
http://www.google.de/search?hl=de&q=...nG=Suche&meta=

gleich der erste treffer.
Mit Zitat antworten
  #12  
Alt 19.02.2008, 12:02:21
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: $_POST faken

Und es scheint immer noch so, dass Du Dich darauf verlässt, dass man POST Daten nur über Dein Formular absenden kann. Dem ist nicht so. POST ist einfach nur eine "Verpackungsart" für die Daten. Und alles, was der Browser damit machen kann, können auch x-beliebige andere Programme tun, mit x-beliebigen Werten. Zum Beispiel kannst Du auch mit PHP beliebige POST Daten versenden.
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
  #13  
Alt 19.02.2008, 15:25:18
gysi gysi ist offline
Anfänger
 
Registriert seit: Feb 2008
Beiträge: 10
AW: $_POST faken

Zitat:
Zitat von feuervogel Beitrag anzeigen
gnarf. hast du auch nur im ansatz begriffen, was sql-injections sind bzw. was htmlspecialchars() bewirkt?
Wenn die Zeichen in htmlcode umgewandelt werden dann können auch keine SQL Injections mehr gemacht werden. was habe ich da jetz nicht verstanden?

Zitat:
Zitat von defabricator Beitrag anzeigen
Und es scheint immer noch so, dass Du Dich darauf verlässt, dass man POST Daten nur über Dein Formular absenden kann. Dem ist nicht so. POST ist einfach nur eine "Verpackungsart" für die Daten. Und alles, was der Browser damit machen kann, können auch x-beliebige andere Programme tun, mit x-beliebigen Werten. Zum Beispiel kannst Du auch mit PHP beliebige POST Daten versenden.
Nein, das stimmt nicht ich habe die hiddeninputs jetz komplett rausgenommen das heisst die werden später auch garnicht mehr abgefragt ich hole die benötigten Variablen jetz neu von der Datenbank

Geändert von gysi (19.02.2008 um 15:31:03 Uhr)
Mit Zitat antworten
  #14  
Alt 19.02.2008, 15:40:06
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: $_POST faken

Zitat:
Zitat von gysi Beitrag anzeigen
Wenn die Zeichen in htmlcode umgewandelt werden dann können auch keine SQL Injections mehr gemacht werden. was habe ich da jetz nicht verstanden?
ok. was du machst ist

DELETE FROM table WHERE id = {$_POST['id']}

ich schreibe in das formular-feld mit dem namen id nun nicht

123

rein, sondern

123 OR 1=1

somit wird alles aus deiner tabelle gelöscht.

htmlspecialchars() macht folgendes:

Zitat:
The translations performed are:

* '&' (ampersand) becomes '&'
* '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
* ''' (single quote) becomes ''' only when ENT_QUOTES is set.
* '<' (less than) becomes '&lt;'
* '>' (greater than) becomes '&gt;'
es kommt aber in meiner eingabe weder &, ", ', < noch > vor, welches in die entsprechende html-entität übersetzt wird und somit ist meine sql-injection weiterhin möglich.
Mit Zitat antworten
  #15  
Alt 19.02.2008, 15:45:48
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: $_POST faken

Zitat:
Zitat von gysi Beitrag anzeigen
Wenn die Zeichen in htmlcode umgewandelt werden dann können auch keine SQL Injections mehr gemacht werden. was habe ich da jetz nicht verstanden?
Das stimmt nicht, ich brauch für einen SQL-Inject keinen HTML-Code. Du solltest Dir einfach mal die Funktion htmlspecialchars ansehen, um zu erfahren, welche Zeichen da maskiert werden.

mysql_real_escape_string (oder in Deinem Fall die entsprechende Oracle-Funktion) musst Du immer verwenden, wenn Du in einem Statement von Außen kommende Daten verwenden musst. Außerdem hilft es dem Angreifer immer sehr gut, wenn er alle Fehlermeldungen sieht. Du solltest also auch immer alle Fehler abfangen und "neutralisieren". Es reicht also, wenn der User zwei Fehlermeldungen sieht:

- Einen, wenn die Datenbank (der Datenbankserver) nicht erreichbar ist
- Eine für alles andere was schief geht, "Es ist ein Fehler aufgetreten (eigener Fehlercode)*".

* Eigener Fehlercode: Es ist Durchaus hilfreich eigene Fehlercodes zu erzeugen, so dass wenn Du vom User einen Hinweis bekommst, Du immer weist wo der Fehler aufgetreten ist, was Dein Debuging sehr vereinfacht.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #16  
Alt 19.02.2008, 16:45:08
gysi gysi ist offline
Anfänger
 
Registriert seit: Feb 2008
Beiträge: 10
AW: $_POST faken

Ich glaube in Oracle funktioniert das mit oci_bind_by_name();
leider habe ich meine database Klasse ganz anders struktruriert und ich muesste alle Aufrufe neue anpassen wenn ich es jetz damit machen wollte =/

Hier mal ein ausschnitt aus meiner database klasse

Code:
function Query($conn,$query,$database=NULL)
{
    @$result= oci_parse($conn, $query);
    oci_execute($result);
    if (!$result) echo ('Fehler in der Abfrage. '.oci_error());
    return $result;
}
	
function GetElements($conn,$table,$where=NULL,$column='*',$database=NULL) {
    $query = "SELECT ".$column." FROM ".$table;
    if($where) $query .= " WHERE ".$where;
    $result = $this->query($conn,$query,$database);
    if($result) while ($row=oci_fetch_object($result)) $rows[]=$row;
    return $rows;
	}
leichter für mich wäre doch einfach eine funktion die keine Sonderzeichen zulässt bzw aus einem string entfernt oder?

Geändert von gysi (19.02.2008 um 16:47:51 Uhr)
Mit Zitat antworten
  #17  
Alt 19.02.2008, 18:27:43
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: $_POST faken

Hi!

Wenn es Dein Spiel nicht einschränkt, dann könntest Du alle Eingaben in Inputfelder (wenn nicht sogar alle Inhalte von $_POST, $_GET...) in so fern drosseln, dass nur die Eingabe von a-z, A-Z, 0-9, äöü, ÄÖÜ möglich ist.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #18  
Alt 20.02.2008, 21:18:09
gysi gysi ist offline
Anfänger
 
Registriert seit: Feb 2008
Beiträge: 10
AW: $_POST faken

Ich habe eine Funktion geschrieben die mit dem String den sie bekommt folgendes macht:
Code:
$string = nl2br(trim(stripslashes(htmlentities($string, ENT_QUOTES, 'UTF-8'))));
Nun sollten keine SQL Injections mehr möglich sein.

Geändert von gysi (20.02.2008 um 21:18:25 Uhr)
Mit Zitat antworten
  #19  
Alt 20.02.2008, 21:20:48
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: $_POST faken

Schau dir doch mal bitte meinen Beitrag zur neuen Filter Extension (ext/filter) in PHP 5.2.0 an. Kann dir gerade bei solchen Validierungs-Arbeiten vielleicht helfen.
http://www.selfphp.de/forum/showthread.php?t=18679
MfG, Andy

/EDIT: Dazu gibt es übrigens auch einen super Artikel mit sehr vielen Code-Beispielen und Erläuterungen in der aktuellen phpsolutions.
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (20.02.2008 um 21:22:48 Uhr)
Mit Zitat antworten
  #20  
Alt 20.02.2008, 21:26:24
gysi gysi ist offline
Anfänger
 
Registriert seit: Feb 2008
Beiträge: 10
AW: $_POST faken

auf meinem Server läuft die PHP version 4.3.10
und da ich nicht der einzige bin der auf dem Server etwas macht kann ich keine andere Version installieren weil dann bei den Seiten von den anderen etwas nicht mehr funktioniert.

Aber ich habe noch eine frage zu POST.
Bei meiner Seite kann man momentan den POST faken indem man einfach eine html Seite erzeugt mit den selben input Feldern wie auf einer Seite bei mir. Dann gibt man bei <form action=" einfach meine URL an und schon kann man den veränderten POST an meine Seite schicken.
Aber kann ich nicht irgendwie einstellen das der Webserver die POSTs die von außen kommen blockt?

Geändert von gysi (20.02.2008 um 21:33:48 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:07:47 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt