You are not logged in.

wcf.regNote.message

BuIIet

Beginner

  • "BuIIet" started this thread

Posts: 3

  • Send private message

1

Thursday, April 17th 2008, 1:55am

Probleme mit meinem Newsarchiv

Moin moin,
ich hab da ein kleines Problem mit meinem Newsarchiv und zwar möchte ich wenn ich im Archiv auf einen News klicke nur diese in einer neuen Seite öffnen und sonst keine, leider schaff ich es entweder nur alle news zu öffnen so wie auf der normalen news seite oder ich bekomme diesen fehler hier:

Quoted

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/.../news/news_datenbank2.inc.php on line 10

das script dazu könnt ihr hier einsehen


wenn ihr wissen wollt was genau ich meine einfach auf www.homesitter-stuttgart.de gehen links auf neuigkeiten klicken, auf archiv klicken und auf eine belibige news...

hat vllt jemand eine idee? ?(

This post has been edited 6 times, last edit by "BuIIet" (Apr 17th 2008, 3:32pm)


Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Thursday, April 17th 2008, 7:06am

Was mir schon mal direkt auffällt ist, dass die Newsid bei den Einträgen im Archiv nicht vorhanden ist. Das heißt wenn Du dort einen Beitrag anklickst wird von dem Beitrag die NewsID nicht mit übergeben. Denn eigentlich solltest Du wenn Du einen Beitrag anklickst auch nur diesen einen aus der Datenbank zurück bekommen wenn Du die ID bei der Abfrage berücksichtigst. Du müsstest jetzt mal schauen warum diese ID nicht mit übergeben wird. Entweder ist ein Fehler in deiner Programmierung oder aber es liegt z.B. an register_globals = off auf deinem Webspace / Server.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

davil

Beginner

Posts: 36

Location: Wien

Occupation: Entwickler

  • Send private message

3

Thursday, April 17th 2008, 9:17am

Die URL in der Übersicht stimmt nicht. Dein Script reagiert korrekt auf folgenden Aufruf:

Source code

1
http://www.homesitter-stuttgart.de/index.php?section=news_datenbank2&id=1

Verlinkt hast du aber das:

Source code

1
http://www.homesitter-stuttgart.de/index.php?section=news_datenbank2&newsid=

Da fehlt erstens die Zahl und zweitens heißt die Variable "id" statt "newsid".

Wie verarbeitest du eigentlich den Inhalt von $id bevor du damit in die SQL-Abfrage gehst? Ich hab es auf die schnelle nicht geschafft, was böses damit anzustellen, trotzdem möchte ich sichergehen dass du vor SQL-Injections geschützt bist.
~~~ ihr seid alle krank! ~~~ :D

BuIIet

Beginner

  • "BuIIet" started this thread

Posts: 3

  • Send private message

4

Thursday, April 17th 2008, 11:56am

Ahhhh jo habs grad gesehen, devil/prometheus ihr habt mich draufgebracht :dafuer: hatte einmal newsid mit id vertauscht, jetzt gehts =) und wegen einem wortdreher saß ich gestern 2 stunden dran und bin verzweifelt X(
und zum thema SQL Injection, öhhhm ich bin nich so versiert auf dem Gebiet, was du damit meinst könnte ich mir noch denken aber wie mach ich sowas? gibts da auch so scripte die die sql abfragen verschlüsseln?

This post has been edited 2 times, last edit by "BuIIet" (Apr 17th 2008, 12:12pm)


davil

Beginner

Posts: 36

Location: Wien

Occupation: Entwickler

  • Send private message

5

Thursday, April 17th 2008, 2:29pm

Bei SQL Injections geht es darum, dass man Werte nicht ungeprüft in die Datenbank lassen darf, weil sie sonst anfällig sind, gesonderten Code in der DB auszuführen.

Stell dir vor jemand hängt an den id-Parameter das dran:

Source code

1
?id=1;DROP DATABASE;

Wenn dein Skript $id 1:1 durchlässt und keine Anführungszeichen gesetzt sind, (bzw. Anführungszeichen nicht per addslashes() escaped werden), führt dieser billige Aufruf aus dem Browser dazu, dass die gesamte Datenbank vernichtet wird. Ähnlich einfach wäre es in dem Fall auch, sich die vorhandenen Tabellen oder deren Inhalte anzeigen zu lassen. Dieses Problem ist alles andere als trivial und alles andere als ungefährlich!

Wenn du weißt, dass im id-Parameter nur ganze Zahlen vorkommen dürfen, ist der einfachste Schutz, dass du intval($id) verwendest - damit werden eventuelle Zeichenketten auf eine Zahl (oder 0) reduziert.
~~~ ihr seid alle krank! ~~~ :D

Prometheus

Administrator

Posts: 3,278

  • Send private message

6

Thursday, April 17th 2008, 6:43pm

Ich finde das Thema auch bei Wikipedia recht gut erklärt. Hier mal der Link dazu.

http://de.wikipedia.org/wiki/SQL-Injection

Da stehen auch Tips wie man das alles verhindert bzw. Links zu Seiten wo man noch mehr erfährt.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

BuIIet

Beginner

  • "BuIIet" started this thread

Posts: 3

  • Send private message

7

Friday, April 18th 2008, 1:12pm

Jo danke euch zwein, ich werd mich da maln bisschen umschauen, paar sachen hab ich schon geändert :D

vielen dank für eure hilfe

wcf.user.socialbookmarks.titel