Sie sind nicht angemeldet.

[1.6.0.0] Unsauberes Script!

1

Sonntag, 9. Januar 2011, 15:16

Unsauberes Script!

Hallo Herr Programmierer

Ich war auf der Suche nach einem miniChat oder halt ShoutBox und bin auf Ihrer Seite gestoßen. Die Anwendung ist einfürsich super da kompakt wobei zu kompakt auch nicht immer gut ist.

Zum Besispiel:

Die Configdaten sollte man schon auslagern und in ein geschütztes Verzeichnis legen, aber das ist eigentlich nicht mein Anliegen sondern die Tatsache dass das ganze sehr schlampig programmiert wurde, was ich erlichgesagt schade finde.

Wenn man nämlich das Errorreporting anmacht dann gibt es zahlreichen NOTICE Meldungen, ich habe versucht das eine oder andere zu fixen doch das Problem ist, fixt man das eine gibt es wo anders eine neue NOTICE. So wie ich das sehe wurde das ganz einfach nur lieblos dahinprogrammiert um den Content auf der Seite zu füllen. Schade sehr schade, die Tatsache ist auch die das man kaum Scripte im Netz findet die wirklich 100% sauber sind, da frage ich mich was das alles für Programmierer sind. Genau wegen derartigen Scripten werden auch zahlreichen Webseiten gehackt.

Die Tatsache ist ja auch die das viele von PHP keine Ahnung haben, sie installieren sich sowas per Anleitung wissen aber garnicht das sie damit ggf. eine Tür aufgemacht haben. Finde ich sehr schade sowas, wobei sauberer Code nicht einmal mehr Zeit in Anspruch nimmt. Sieht man ja auch daran das Sie <table für das HTML benutzt haben wobei hier <div und <ul <li angebracht wäre.

Eventuell nehmen Sie sich das zu Herzen und fixen Ihre Scripte. Ich wäre z.B. 100% dafür auf mal eine Spende zu leisten aber wenn ich selbst dann Tagelang ein solches Script fixen muss dann wäre eigentlich ich der diese Spende bekommen sollte.

MfG

Bernd

2

Sonntag, 9. Januar 2011, 15:38

Die Configdaten sollte man schon auslagern und in ein geschütztes Verzeichnis legen, aber das ist eigentlich nicht mein Anliegen sondern die Tatsache dass das ganze sehr schlampig programmiert wurde, was ich erlichgesagt schade finde.
Wieso sollten Config-Daten in ein separates Verzeichnis ausgelagert werden? Welche zusätzliche Sicherheit sollte von dieser Maßnahme ausgehen?
Die Datei muss auf jeden Fall so oder so per PHP indie ursprüngliche .php-Datei eingebunden werden. Das Ergebnis auf der ausführenden Seite ist deshalb im Prinzip das gleiche.

Wenn man nämlich das Errorreporting anmacht dann gibt es zahlreichen NOTICE Meldungen, ich habe versucht das eine oder andere zu fixen doch das Problem ist, fixt man das eine gibt es wo anders eine neue NOTICE. So wie ich das sehe wurde das ganz einfach nur lieblos dahinprogrammiert um den Content auf der Seite zu füllen. Schade sehr schade, die Tatsache ist auch die das man kaum Scripte im Netz findet die wirklich 100% sauber sind, da frage ich mich was das alles für Programmierer sind. Genau wegen derartigen Scripten werden auch zahlreichen Webseiten gehackt.
Ich möchte hier dringend darauf hinweisen, dass NOTICE-Meldungen in keiner weise auf irgendwelche Sicherheitslücken im Script hindeuten. Notice-Meldungen sind lediglich unschöne Hinweismeldungen. Sollte irgendwann eine neue Version der Shoutbox veröffentlicht werden, werden diese Meldungen selbstverständlich auch behoben werden. Wie aber der Versionsinfo zu entnehmen ist, ist die Shoutbox schon lange nicht mehr auf dem Stand der Technik (letzter Release im März 2008). Nichts desto trotz sind bisher keinerlei sicherheitskritsche Meldungen bzgl. irgendwelcher gearteten Lücken im Script eingegangen. Sollten entsprechende Hinweise an mich herangetragen werden, wird die entsprechende Lücke selbstverständlich umgehend behoben. Bis dahin steht die Shoutbox auf der Liste der Weiterentwicklungen allerdings nicht an oberer Stelle.

Die Tatsache ist ja auch die das viele von PHP keine Ahnung haben, sie installieren sich sowas per Anleitung wissen aber garnicht das sie damit ggf. eine Tür aufgemacht haben. Finde ich sehr schade sowas, wobei sauberer Code nicht einmal mehr Zeit in Anspruch nimmt. Sieht man ja auch daran das Sie <table für das HTML benutzt haben wobei hier <div und <ul <li angebracht wäre.

Hier werden Äpfel mit Birnen verglichen. <table> ist ein normaler standardkonformer HTML-Tag, der lediglich nicht zur Umsetzung von Layouts o.ä. genutzt werden sollte. Das ist hier auch nicht der Fall. Darüber hinaus halte ich nichts davon nur stumpf jegliche verwendete Tabelle durch eine irsinnige Konstruktion aus divs, und wildesten CSS-Hacks zu ersetzen, nur um das gleiche Ergebnis wie in diesem Fall mit einer einfachen Tabelle zu erhalten.
Jedoch auch hier gilt, dass die HTML-Ausgabe selbstverständlich ebenfalls nicht mehr dem Stand der Technik entspricht.

Mit freundlichen Grüßen,
Michael Lorer
Jesus lebt

Sie waren mit dem Support zufrieden? Dann unterstützen Sie diese Seite - Spenden per PayPal
Oder beschenken über die Amazon Wunschliste

Öffentlicher PGP-Schlüssel zur sicheren E-Mail-Kommunikation.

3

Sonntag, 9. Januar 2011, 16:00

Hallo

Ich wollte Ihnen jetzt nicht zunahe treten und hoffe hier kann man Kritik vertragen?

Wenn ein Script nicht auf den aktuellen Stand der Dinge ist dann sollte man das eventuell auch Kennzeichen oder ganz von der Seite nehmen bis es auf den neusten Stand ist, das ist meine Meinung dazu.

<table> ist für tabellarische Daten da und für nichts anderes, eine ShoutBox oder Chat hat was mit tabellarischen Daten zutun? wenn Sie jetzt sagen, warum soll ich es mit den TGAS machen die dafür vorgesehen sind oder CSS benutzen und mir die Arme ausrenken wenn es mit <table> einfacher geht, dann muss ich Ihnen leider sagen das Sie von HTML bzw. wozu es eigentlich da ist keine Ahnung haben bzw. die W3C Standards mit Füßen treten.

Config auslagern:

Dazu lesen Sie am besten mal über injections usw. Scripte in denen alles Daten wie auch ein Passwort direkt verankert ist sind gefährlich, ausgelagern in ein geschütztes Verzeichnis ist eigentlich Pflicht.

Schönen Sonntag

4

Sonntag, 9. Januar 2011, 16:13

Ich wollte Ihnen jetzt nicht zunahe treten und hoffe hier kann man Kritik vertragen?
Aber natürlich. Gegen sachliche Kritik habe ich nichts einzuwenden.

Wenn ein Script nicht auf den aktuellen Stand der Dinge ist dann sollte man das eventuell auch Kennzeichen oder ganz von der Seite nehmen bis es auf den neusten Stand ist, das ist meine Meinung dazu.
Das sehe ich anders. Das Script ist ein kostenloses Angebot. Das Veröffentlichungsdatum, die Versionsangaben, eine umfangreiche Changelog-Datei und ein unverschlüsselter Quellcode stehen zur Verfügung. Solange im Quellcode keine groben Sicherheitslücken enthalten sind sehe ich keinen Grund die Shoutbox als kostenloses Angebot für Interessierte weiterhin bereit zu stellen.

<table> ist für tabellarische Daten da und für nichts anderes, eine ShoutBox oder Chat hat was mit tabellarischen Daten zutun? wenn Sie jetzt sagen, warum soll ich es mit den TGAS machen die dafür vorgesehen sind oder CSS benutzen und mir die Arme ausrenken wenn es mit <table> einfacher geht, dann muss ich Ihnen leider sagen das Sie von HTML bzw. wozu es eigentlich da ist keine Ahnung haben bzw. die W3C Standards mit Füßen treten.
Das W3C legt glücklicherweise nicht fest welche Daten mit welchen Tags ausgezeichnet werden. Dementsprechend kann ich auch nichts mit Füßen treten. Wie schon gesagt: Das Script ist mittlerweile fast drei Jahre alt - und vieles würde ich heute sicherlich auch anders machen - allerdings verwehre ich mich dagegen statt 10 Zeilen HTML-Code für eine Tabelle zu schreiben lieber 5 Zeilen mit Divs & Listen (Die inflationäre Vergewaltigung der Listen-Tags für alle möglichen Massen an Inhalten, die im eigentlichen Sinne keine Liste darstellen..., war sicherlich auch nicht im Sinne der W3C-Verantwortlichen...) sowie 20 Zeilen CSS-Code inkl. diverser Hacks für alle möglichen Browser zu verwenden. Das ist genauso falsch und widerspricht dem eigentlichen Gedanken der standardkonformen Nutzung der HTML-Tags in gleicher Weise.

Dazu lesen Sie am besten mal über injections usw. Scripte in denen alles Daten wie auch ein Passwort direkt verankert ist sind gefährlich, ausgelagern in ein geschütztes Verzeichnis ist eigentlich Pflicht.
In diese Richtung habe ich mich schon durchaus informiert. Und mir erschließt sich weiterhin nicht wo der Vorteil einer Auslagerung dieser Daten in eine extra Datei liegen soll, wenn die gleichen Daten wenige Nanosekunden später über einen include()-Befehl sowieso wieder in die Datei hineingeholt werden.
Wenn Sie dazu allerdings belastbare Quellen oder entsprechende Links haben, die anderes behaupten oder an Beispielen aufzeigen, wäre ich daran durchaus interessiert.

P.S.
Eventuell finde ich in der nächsten Woche sogar die Zeit für eine erneute grobe Überarbeitung des Quellcodes.
Mal sehen...
Jesus lebt

Sie waren mit dem Support zufrieden? Dann unterstützen Sie diese Seite - Spenden per PayPal
Oder beschenken über die Amazon Wunschliste

Öffentlicher PGP-Schlüssel zur sicheren E-Mail-Kommunikation.

5

Sonntag, 9. Januar 2011, 18:11

Ich würde es von der Seite nehmen, nur ein Beispiel, geben Sie als Text mal <!-- ein, dann berichten Sie mal wie sich die ShoutBox verhält. Das ist jetzt harmlos, wenn ich will ist Ihre jetztige Box in 3 Minuten üerall wo sie läuft gehackt. Auch die anderen Scripte sind nicht besser und sind neuer? um es deutlich auszusprechen, die ShoutBox ist offen für SQL Injections!

Es gibt absolut Null Absicherung in dem Script und das hat nichts damit zutun das es von 2008 ist, auch damals hat man sich gegen Hacking geschützt.

Notice Meldungen sind immer ein Indiz dafür das es der Programmierer nicht so genau nimmt und eventuell auch Lücken in Scripten hat ;)

6

Sonntag, 9. Januar 2011, 20:36

Zitat

Ich würde es von der Seite nehmen, nur ein Beispiel, geben Sie als Text mal <!-- ein, dann berichten Sie mal wie sich die ShoutBox verhält. Das ist jetzt harmlos, wenn ich will ist Ihre jetztige Box in 3 Minuten üerall wo sie läuft gehackt. Auch die anderen Scripte sind nicht besser und sind neuer? um es deutlich auszusprechen, die ShoutBox ist offen für SQL Injections!

Es gibt absolut Null Absicherung in dem Script und das hat nichts damit zutun das es von 2008 ist, auch damals hat man sich gegen Hacking geschützt.
Der genannte "Test" hat absolut nichts mit SQL-Injections zu tun. Das ist etwas ganz anderes und ist bei diesem Script (genauso wie bei allen anderen) nicht möglich. Was Sie wohl meinen sind sog. XSS-Lücken. Da muss ich zugeben, dass bei der Verarbeitung der Eingaben HTML (und damit auch JS-Code) nicht rausgefiltert wird. Dieses Problem besteht wirklich - und darum werde ich mich morgen kümmern. Das hat aber nicht im geringsten etwas mit SQL-Injections zu tun. Wenn Sie sich den Quellcode richtig angeschaut hätten, würden Sie das an den MySQL-Querys auch erkennen.
Außerdem würde ich doch darum bitten irgendwelche Verallgemeinerungen in Bezug auf die anderen (aktuellen) Scripte - und speziell auf die Module des 01ACP - zu unterlassen. Ohne konkrete Hinweise auf anfällige Codestellen sind das nämlich recht haltlose Unterstellungen die ich hier nicht tolerieren werde.
Die Shoutbox stellt in keiner Weise das Codeniveau dar, dass in den 01ACP-Modulen Einzug gehalten hat und ich bitte darum das nicht in einen Topf zu schmeißen.

MfG,
Michael Lorer
Jesus lebt

Sie waren mit dem Support zufrieden? Dann unterstützen Sie diese Seite - Spenden per PayPal
Oder beschenken über die Amazon Wunschliste

Öffentlicher PGP-Schlüssel zur sicheren E-Mail-Kommunikation.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Michael Lorer« (10. Januar 2011, 00:03)


7

Mittwoch, 12. Januar 2011, 14:49

Hallo,

wenn Sie noch Interesse an einer Verbesserung des Scripts haben, steht dem nun nichts mehr im Wege:
01-Shoutbox ab sofort Open Source

Der momentan aktuelle Stand auf Github wurde von mir bereits komplett überarbeitet.
Die XSS-Lücken entfernt und die PHP-Notice-Meldungen ebenfalls.

Über eine Mitarbeit Ihrerseits daran würde ich mich freuen.

MfG,
Michael Lorer
Jesus lebt

Sie waren mit dem Support zufrieden? Dann unterstützen Sie diese Seite - Spenden per PayPal
Oder beschenken über die Amazon Wunschliste

Öffentlicher PGP-Schlüssel zur sicheren E-Mail-Kommunikation.

8

Samstag, 15. Januar 2011, 22:23

Hallo

Mache ich gerne wenn ich Zeit finde, arbeite gerade selbst an einem Projekt , dort ist eine ähnliche Box jedoch auf CGI Basis am laufen - von mir. Ist natürlich was anderes als Ihre, eher eine reine MiniChatBox. Aber Sie können sehen wie das mit Ajax funktioniert, dort wird nur das Chatfenster aktualisiert, 1. bei jeder Usereingabe 2. Zeitinterval "einstellbar" oder 3. manuell. Das geht auch mit Ihrer, wenn ich Zeit finde werde ich das in Ihrer einbauen, das heisst wenn Sie nichts dagegen haben.

9

Sonntag, 16. Januar 2011, 10:11

[...] das heisst wenn Sie nichts dagegen haben.

Wie schon gesagt: die Shoutbox steht ab sofort unter einer Open Source-Lizenz.
Dementsprechend können Sie beliebige Änderungen daran vornehmen.
Jesus lebt

Sie waren mit dem Support zufrieden? Dann unterstützen Sie diese Seite - Spenden per PayPal
Oder beschenken über die Amazon Wunschliste

Öffentlicher PGP-Schlüssel zur sicheren E-Mail-Kommunikation.

Thema bewerten