KaXrikaturenforum » bams und Peters wbblite Ecke » Fragen und Antworten zu Forenproblemen » Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher) » werter Gast [anmelden|registrieren]
zur Zeit im Thread: 1 Gast » wer hat wann diesen Thread gelesen
letzter Beitrag | erster ungelesener Beitrag | Druckvorschau | an Freund senden | Thema zu Favoriten hinzufügen
11 Seiten: « < 5 6 7 8 9 10 11 >

Dieses Thema wurde als erledigt markiert. erledigt

Autor
            Beitrag    Beitragsreihenfolge: aufsteigend oder absteigend « Vorheriges Thema | Nächstes Thema »
 Antwort erstellen

bam
Schabernack



Profildaten ein-/ausblenden

bam hat das Thema begonnen





Do, 10.11.2016 21:26   
Beitrag 97 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

Guckst du hier:

addslashes

und

htmlspecialchars

Ist der Vergleich verständlich?




Beitragsnr.: 28221
» Beitragslink
Beitrag drucken



bam
Schabernack



Profildaten ein-/ausblenden

bam hat das Thema begonnen





Fr, 11.11.2016 16:13    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 98 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

Heute habe ich bei php.net folgende, interessante Grafik gefunden:

    hochgeladene Grafik:
»  Thickbox »  volle Bildgröße


    hochgeladene Grafik:
»  Thickbox »  volle Bildgröße


Quelle: php.net

Sollten nun Hoster und Provider hergehen und php 5.6 abschalten, so haben jene einen in der Waffel.
Daher haben Peter und ich uns auch entschieden weiterhin php 5.6 zu verwenden und den Umstieg auf php 7.x erst einmal hinausschieben.

Was anhand der Grafik auch interessant ist:
Es wird wahrscheinlich recht rasch php 7.1 oder gar 7.2 geben - so wie ich dies momentan interpretiere.




Beitragsnr.: 28223
» Beitragslink
Beitrag drucken



rabenfrosch
Lügendetektor



Profildaten ein-/ausblenden






So, 13.11.2016 17:00    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 99 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

    Zitat:
Original von bam aus Beitrag 28216


    Zitat:
Das addslahes habe ich noch drin - also wirklich nur das htmlspecialchars entfernt.

Interessant - dies hatte ich gar nicht mehr im Gedächtnis.
Die betroffenen Stellen, welche jetzt nicht mehr funktionieren wurden doppelt abgesichert ala

    Code:
1:
posttopic='".addslashes(htmlspecialchars($topic))."'

und dabei hebelt es einen komplett aus.

---> neu geschrieben (klappt ohne Probleme):

    Code:
1:
posttopic='".addslashes($topic)."'


Danke frosch - dein Tipp war absolut korrekt!
Jetzt kann ich mich auch wieder an eine Diskussion mit unserem MikeHH erinnern, welche wir vor Jahren führten.
Dabei ging es genau um diese doppelte Absicherung und Mike meinte schon damals, dass dies Schwachsinn sei.
Jetzt hatte ich gerade ein Aha-Erlebnis. großes Grinsen

Jetzt muss ich mich einmal durch alle php-Dateien des KaX wuseln und gucken, wo dies überall vorkommt.
Danke frosch! blume


Was mir gerade eingefallen ist: das unterstützt ja absolut die Sache, dass dieser htmlspecialchar_hotfix totaler Schwachsinn ist, oder?

Und danke für den Link. Ein wenig erklärt es das, aber ich muss mich da mal in Ruhe reinlesen. Hab eh noch eine Liste mit Dingen hier, die ich mache, und funktionieren, aber ich keine Ahnung habe warum und warum ich das nicht anders mache.




So steu're ich das Totenschiff, mit voller Kraft auf's nächste Riff. Auf das ihr an der Last erstickt, mit der ihr mich auf Reisen schickt!
Für eure Unschuld sollt ich sorgen. Von Gott die Freiheit für euch borgen. Auf das die kurze Gnadenfrist nun frei von euren Zweifeln ist!
Doch eines habt ihr dabei nicht bedacht - mit wem ihr diese Gleichung macht. Ich bin der ausgestoßene Sohn und euer Spott ist mein Judaslohn
(c) In Extremo - aus gegebenen Anlass

Beitragsnr.: 28240
» Beitragslink
Beitrag drucken



bam
Schabernack



Profildaten ein-/ausblenden

bam hat das Thema begonnen





So, 13.11.2016 17:42    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 100 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

    Zitat:
Was mir gerade eingefallen ist: das unterstützt ja absolut die Sache, dass dieser htmlspecialchar_hotfix totaler Schwachsinn ist, oder?

In der Tat, in der Tat! großes Grinsen
Man kann schon noch mit htmlspecialchars und rehtmlspecialchars arbeiten, doch in Verbindung mit addslashes warst es in der heutigen Zeit.
Und dies kannst du übergeordnet nicht so leicht bestimmen -vielleicht noch mit lib-Dateien zu bewerkstelligen ...

Diesbezüglich würde ich persönlich auch eher zu addslashes tendieren ...
Dies war ein Grund warum ich diese Umbauanleitung nie mochte!
Man kann schon mit htmlchars arbeiten aber dann kommt jemand daher und schaltet jene einfach ab.




Beitragsnr.: 28241
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Mo, 14.11.2016 23:23    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 101 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Hallo lieber bam,

Man speichert in eine Datenbank, in der Regel, nicht mit htmlspecialchars, denn genau in dieser Reihenfolge macht es meist keinen Sinn. Augenzwinkern

Man benutzt in der Regel htmlspecialchars, wenn man etwas VON der Datenbank ausliest.
Genau da erkennt man auch ob jemand weiß, was er tut oder nicht...

Wer beides gleichzeitig verwendet, hat wohl etwas falsch gemacht...

Bezüglich des "hotfix" muss ich mich mit dir wohl nicht mehr unterhalten, denn du hast es offensichtlich bis heute noch nicht verstanden und glaubst noch immer, dass eine Funktion, die man global definiert und selbst auswählt, wo man sie verwendet, dass sie das Forum zerschießen könnte Augenzwinkern



Beitragsnr.: 28247
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Mo, 14.11.2016 23:39    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 102 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Hallo,

Kleiner Nachtrag:
Im Zusammenhang mit einem "Thementitel" kann es aber durchaus Sinn ergeben...

Warum?
Codierungsprobleme fallen somit flach, wenn man an Umlaute denkt, da ein "HTML-Code" für solche Zeichen erzeugt wird und somit stets korrekt angezeigt werden.

Jedenfalls hat das "hotfix" beziehungsweise die global definierte Funktion überhaupt keine Auswirkung auf die lauffähigkeit des Forums, wenn es dort eingesetzt wird, wo auch vorher das "normale htmlspecialchars" verwendet wurde.

Wenn euch also die Kombination von "addslashes" und "htmlspecialchars" nicht gefällt, oder ihr damit nicht zurechtkommt, müsst ihr WoltLab die Schuld geben Augenzwinkern



Beitragsnr.: 28248
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Di, 15.11.2016 00:06    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 103 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Hallo,

Noch ein kleiner Nachtrag.
Das Beispiel im Bezug auf "htmlspecialchars" war vielleicht nicht sonderlich gut gewählt, da Umlaute von der "htmlentities" umgewandelt werden, aber es Veranschaulicht durchaus, wann es Sinn machen kann, jene auch dort zu verwenden.

Zu beachten sei:
Sowohl "htmlspecialchars" als auch "htmlentities" dienen nicht der Maskierung zum Schutze einer "SQL-Injection" oder "PHP-Operation" und werden, eigentlich, auch im WoltLab Burning Board nicht so verwendet.



Beitragsnr.: 28249
» Beitragslink
Beitrag drucken



bam
Schabernack



Profildaten ein-/ausblenden

bam hat das Thema begonnen





Di, 15.11.2016 00:17    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 104 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

    Zitat:
Wenn euch also die Kombination von "addslashes" und "htmlspecialchars" nicht gefällt, oder ihr damit nicht zurechtkommt, müsst ihr WoltLab die Schuld geben Augenzwinkern

Na du bist mir vielleicht ein Clown.
WoltLab hat das lite 1.0.2 im Jahr 2004 rausgebracht.
Ja - ist schon lange her.

Irgendwann einmal wurde diese Software von WoltLab abgestoßen.
Und heutzutage kümmern sich nur mehr ein paar Freaks um deren Erhalt.
Hätte WoltLab nicht einen folgenschweren Passus in den Nutzungsbestimmungen eingebaut, so wäre dieses Forum gar nicht mehr erlaubt.

Früher war dies ein kunterbunter Haufen und viele versuchten Erweiterungen zu schreiben.
Das war eine geile Zeit - z.B. bei mywbb.
Aber wer von den Hobbieisten hat denn heute noch Lust darauf WoltLab zu bereichern?
OK - es gibt ein paar Ausnahmen.
Aber Viele von jenen haben sich selbständig gemacht und machen heutzutage ihr eigenes Ding. cool




Beitragsnr.: 28250
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Di, 15.11.2016 00:33    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 105 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Was hat das nun mit dem Problem zu tun?

WoltLab hat sich schon was dabei gedacht, warum an dieser Stelle ebenfalls htmlspecialchars verwendet wird...
Zu welcher Zeit sie das WoltLab Burning Board erstellt haben, tut in diesem Fall nicht wirklich was zur Sache.

Du hast dich aufgeregt, dass an dieser Stelle beides verwendet wird...
Genau so steht es aber in der ursprünglichen php-Datei und hat mir der Anpassung an neue php-Version mal so gar nichts zu tun.

Richtig umgesetzt kann es auch weiterhin an dieser Stelle stehen bleiben.
Dazu muss man eben nur verstehen, was die eigentliche Idee war "htmlspecialchars" an dieser Stelle zu verwenden.

Jedenfalls hat eine "htmlspecialchars_xy"-Funktion an diesen Code so lange keinen Einfluss, bis du es erstetzt.



Kleines Beispiel:
Du programmierst eine Forensoftware und verwendest über 1000x die htmlspecialchars-Funktion mit ihren Standardwerten.

Also so:
    Code:
1:
var = htmlspecialchars(x);


Nun bemerkst du aber, dass der angenommene Standardzeichensatz irgendwie nicht das "Wahre" ist und deine Bedürfnisse nicht erfüllt oder du zusätzliche "Flags" oder andere "Flags", als zuvor gewählt, benötigst.
Wäre es nicht schön gewesen, dass du alle "htmlspecialchars" als "ownfunction" geschrieben hättest und folgendes in eine Datei packst, die du dann jeweils in deine Dateien einbindest?
    Code:
1:
2:
3:
function ownfunction($x) {
 return 
htmlspecialchars($x,FLAGS,CHARSET);
}

Somit musst du nur mehr an dieser EINEN Stelle nachbessern und nicht in eventuell hunderten von Dateien?
Das ist, wie ich schon so oft erwähnte, eine der Grundgedanken von OOP!

Im Übrigen gilt eben auch, wie bei der "htmlspecialchars"-Funktion, wenn sich Standardwerte ändern, kannst du das mit Leichtigkeit abändern.

Ob ich meine Funktion nun "htmlspecialchars_xyz" nenne, oder "bamIstderGroeßte" beeinflusst das Verhalten, so lange nicht explizit zusätzlich wo verwendet, das Forum erstmal nicht und auch dann, sofern richtig eingesetzt, sollte es auch weiterhin keine Probleme geben. (Sprich: Wenn man nur die alten Funktionen mit der neuen Tauscht, was ja der Grundgedanke ist, warum man die Funktion global erstellt)



Beitragsnr.: 28251
» Beitragslink
Beitrag drucken



bam
Schabernack



Profildaten ein-/ausblenden

bam hat das Thema begonnen





Di, 15.11.2016 15:51    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 106 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

Kurz und schmerzlos, da mir dies nun keine Ruhe ließ:

    hochgeladene Grafik:
»  Thickbox »  volle Bildgröße


Quelle: Stackoverflow - bitte den gesamten Thread lesen.

Jetzt kann sich jeder selbst seine Meinung bilden. großes Grinsen

Und:
Schrimm, dies ist ja nicht böse dir gegenüber gemeint.
1000 Wege führen nach Rom.
Doch wir hinterfragten die Sinnhaftigkeit.
Wenn die Kombination aus addslashes und htmlspecialchars hirnrissig ist, wollen wir darauf hinweisen.
Raus mit dem Mist!
Noch dazu, wenn dabei komplette Funktionen außer Kraft gesetzt werden.

Und dabei bedarf es keiner langwiriger Anleitungen.
Schmeißt den Müll einfach raus!
Aber bitte nicht durch das Fenster und denkt auch an die Mülltrennung!
Software kommt nicht zum Gemüseabfall, selbst Hardware nicht! abblachen




Beitragsnr.: 28253
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Di, 15.11.2016 21:08    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 107 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Hallo bam,

Die Aussage bezüglich addslashes() und mysqli_real_escape_string() stimmt so nicht ganz...
Das was hier ständig gepredigt wird von "mysqli_real_escape_string()" sei sicherer usw. ist nur bedingt richtig.

Beide taugen gleich viel, beziehungsweise gleich wenig, was bezüglich Schutz vor einer "SQL-Injection" betrifft.
Der Hauptunterschied ist im Grunde nur, dass "addslashes()" von php kommt und "mysqli_real_escape_string()" von der Datenbank, welche man nun benutzt ist die eine Frage, siehe weiter unten...

Einen Nachteil hat "addslashes()" nur, wenn es um Multibyte-Charsets betrifft, wo es anfällig bezüglich einer "SQL-Injection" ist, die aber nicht durch "mysqli_real_escape_string()" geht, doch dieser "Nachteil" geht im "UTF-8"-Zeichensatz wieder verloren.

"mysqli_real_escape_string()" ist somit nicht wirklich "sicherer" als "addslashes()", was einen Angriff betrifft und ist der größte Irrglaube, der im Netz herzumkursiert.

"mysqli_real_escape_string()" ist nur bezüglich der Datenintegrität "sicherer", wenn man es so möchte und wird deshalb stets empfohlen, doch es kommt eben wieder darauf an, was man wirklich möchte...

Bezüglich "htmlspecialchars()", wie ich bereits erwähnte, verwendet man sie, in der Regel, wenn man es von der Datenbank holt und ausgibt und nicht umgekehrt.
Es gibt aber eben doch ein paar Ausnahmen und das kann man deshalb nicht pauschalisieren, dass es keinen Sinn macht.

Zudem(und jetzt halt dich fest):
Standardwerte der htmlspecialchars()-Funktion:
$flags = ENT_COMPAT | ENT_HTML401

ENT_COMPAT: Konvertiert nur doppelte Anführungszeichen und lässt einfache Anführungszeichen unverändert.
ENT_HTML401: Behandle Code als HTML 4.01.

Wo sind die einfachen Anführungszeichen?
Was macht denn nun "addslashes()"?

Vielleicht machst du dir nochmal Gedanken über das ganze Thema...



Beitragsnr.: 28256
» Beitragslink
Beitrag drucken



Gast
Gast



Profildaten ein-/ausblenden






Di, 15.11.2016 22:02    RE: Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)
Beitrag 108 von 124
diesen Beitrag editieren zum Mitglied Kontakt aufnehmen zum Ende der Seite springen zum Anfang der Seite springen
zum Zitieren markieren:

<<<Schrimm

Hallo,

Wieder ein kleiner Nachtrag und wenn du den Sinn eventueller Ausnahmen dann nicht erkennst, dann ist es wohl zu spät...

Nehmen wir unser tolles WoltLab Burning Board Lite 1.0.2pl3.

WoltLab macht, wie ihr bereits erkannt habt folgendes, beim Datenbankeintrag:
    Code:
1:
posttopic='".addslashes(htmlspecialchars($topic))."'


Folgende Zeichen werden nun von "htmlspecialchars()" in HTML-Entities umgewandelt:
&, ", < und >

"addslashes()" kümmert sich nun um die Zeichen:
", ', \ und "Null-Byte"...

Moment, " ist ja nun ein HTML-Entity...

Warum hier ein "htmlspecialchars()"?
Gute Frage...
Sehen wir uns die Ausgabe an(/board.php):
    Code:
1:
if(strlen($threads['topic'])>60$threads['topic']=parse::textwrap($threads['topic'],60);


Was könnte sich WoltLab nun gedacht haben?

Vermutung:
Wir haben hier den Thementitel...
Diese sind, in der Regel kurz und "HTML"-Code soll NICHT umgewandelt werden...
Warum wird es nicht umgewandelt?
--->Weil "htmlspecialchars()" es in "HTML-Entities" verändert hat.

Warum aber nicht bei der Ausgabe ein "htmlspecialchars()" verwenden?

Vermutung:
Perfomancegründe
1x bei der Eingabe umwandeln, anstatt ständig bei einem Aufruf durch einen Benutzer.

Wäre zumindest eine Möglichkeit, was sich WoltLab wohl dabei gedacht haben könnte, damit Benutzer "xy" nicht auf die Idee kommt in den Thementitel "HTML"-Code zu schreiben und das Forum zu zerschießen...



Beitragsnr.: 28260
» Beitragslink
Beitrag drucken


  11 Seiten: « < 5 6 7 8 9 10 11 >
 zur Zeit im Thread: 1 Gast
 KaXrikaturenforum » bams und Peters wbblite Ecke » Fragen und Antworten zu Forenproblemen » Das wbblite 1.0.2 unter php 5.3 / sql 5.1 (und höher)

   
Antwort erstellen
 



   
Powered by Burning Board Lite 1.0.2 © 2001-2004 WoltLab GmbH
Online seit 12 Jahren und 124 Tagen