Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Passwort gesicherter bereich mit admin Seiten
#11
Du hast in anderen Foren von Leuten mit PHP-Erfahrung gelesen, dass htmlspecialchars bei der Ausgabe benutzt wird. Reicht das nicht?

Außerdem könnte man mal in der Doku nachlesen, um zu verstehen, was htmlspecialchars genau macht: http://de2.php.net/manual/de/function.ht...lchars.php

Dann sollte mit etwas Nachdenken eigentlich klar werden, dass das bei Datenbankaktionen völliger Quatsch ist.
Zitieren
#12
(25.07.2018, 06:36)m.scatello schrieb:
(24.07.2018, 18:36)basti1012 schrieb: Dann sehe ich nix von htmlspecialchars() ,aber mußte man das bei PDO auch anwenden ???

Alleine das zeugt davon, dass du gefährliches Halbwissen verbreitest. htmlspecialchars wird nur zur Ausgabe benutzt, aber nicht für Datenbank-Aktionen!

Und das du von PDO keine Ahnung hast (muss man auch nicht unbedingt, wenn man nur mit MySQL zu tun hat), hat man ja in anderen Foren schon oft genug gelesen. Aber bitte, dann nehme nicht irgendwelche Scripte aus dem Netz, bastele dran rum und veröffentliche sie nicht!

Ist zwar ein alter Post, aber er ist immer noch zu lesen -> DAHER MUSS ICH HIER WAS LOSWERDEN !!!

Das htmlspecialchars NUR BEI AUSGABE verwendet wird ist GNADENLOS FALSCH !!!
Denn ohne eine solche Konvertierung eine Eingabe direkt in eine Datenbank zu übernehmen öffnet Tür und Tor für SQL-Injections !!!
Zwar werden die meisten Injections erst aktiv wenn sie via Ausgabe den Parser durchlaufen, aber direkte SQL-Aufrufe eben nicht !!!

Beispiel: Gibt man bei 'Passwort' z.B. ein: password' OR 1='1'
sieht der SQL-Befehl so aus: sql = "SELECT id FROM users WHERE username='user' AND password='password' OR 1='1'

Damit ergibt OR 1='1' IMMER TRUE und der Bösewicht ist in der Datenbank !!!

Aber mit htmlspecialchars ("SELECT id FROM users WHERE username='user' AND password='password' OR 1='1'
wird schlimmstenfalls eine Fehlermeldung provoziert aber kein Zugang erlaubt !!!

Soweit zum Thema "GEFÄHRLICHES HALBWISSEN"


Bei PDO kann dies nicht passieren, da die Anweisung und die Werte getrennt übergeben werden. Somit kann der Wert niemals
Bestandteil der Anweisung werden. Aber auch hier werden die Werte intern 'escaped' um auch ohne unmittelbare Folgen
keinen Schadcode in die Datenbank einzutragen.

(25.07.2018, 06:36)m.scatello schrieb:
(24.07.2018, 18:36)basti1012 schrieb: Dann sehe ich nix von htmlspecialchars() ,aber mußte man das bei PDO auch anwenden ???

Alleine das zeugt davon, dass du gefährliches Halbwissen verbreitest. htmlspecialchars wird nur zur Ausgabe benutzt, aber nicht für Datenbank-Aktionen!

Und das du von PDO keine Ahnung hast (muss man auch nicht unbedingt, wenn man nur mit MySQL zu tun hat), hat man ja in anderen Foren schon oft genug gelesen. Aber bitte, dann nehme nicht irgendwelche Scripte aus dem Netz, bastele dran rum und veröffentliche sie nicht!

OK, der Beitrag ist alt - beinhaltet aber EXTREME FALSCHAUSSAGEN !!!

@ m.scatello:

Wo kommt denn die Weisheit her htmlspecialchars NUR bei Ausgaben zu verwenden ??? -> GEFÄHRLICHER SCHWACHSINN !!!
Das ist dann für SQL-Injections ein riesiges offenes Scheunentor !!! Bitte nicht so einen Quatsch publizieren - BITTE !!!!!

Beispiel: Bei einer Anmeldung als Passwort folgende Zeichenfolge eingeben: password' OR 1='1

Ergibt dann folgende SQL-Anweisung: [i]sql = [/i]"SELECT id FROM users WHERE username='user' AND password='password' OR 1='1'

Was kommt bei der boolschen Logik password OR 1='1' raus => TRUE
Und 'true' bedeutet Zugriffserteilung und schon hast du einen unerwünschten Zugriff !!!
Mit htmlspecialchars kann es nicht passieren da dann die Hochkomata in Entities umgewandelt werden und keinen Code mehr darstellen !!!
Ich kann dir 1000de solcher Injections nennen die KEINE AUSGABE brauchen und ohne htmlspecialchars BESTENS FUNKTIONIEREN !!!
Daher 'm.scaletto' - BITTE BITTE BITTE: Keinen solchen Quatsch in Foren publizieren !!!! BITTE BITTE BITTE
PS: Bei PDO werden Anweisung und Werte getrennt übertragen und können daher kombiniert keine Injection ergeben. Aber auch PDO
(und m.scaletto scheint seinem Beitrag nach ja die Funktion sehr gut zu kennen) ENTSCHÄRFT SONDERZEICHEN und zwar nicht nur
primitiv via htmlspecialchars. Da wird intern escaped, transcodiert und konvertiert auf Teufel komm raus !!!
Für ALLE Forumsleser nochmal im Klartext: JEDE FREMDE EINGABE BITTE IMMER SOFORT VALIDIEREN
Am besten 3fach: HTML <input> mit "pattern" maskieren, mit JavaScript clientseitig auch (regex) und serverseitig mit php (regex, filter...)
Ach ja: Hab mal ein Formular gemacht dass "Idiotensicher" sein sollte: http://megabyte66.ddns.net/mb_movie/
Zitieren
#13
(25.07.2018, 06:36)m.scatello schrieb:
(24.07.2018, 18:36)basti1012 schrieb: Dann sehe ich nix von htmlspecialchars() ,aber mußte man das bei PDO auch anwenden ???

Alleine das zeugt davon, dass du gefährliches Halbwissen verbreitest. htmlspecialchars wird nur zur Ausgabe benutzt, aber nicht für Datenbank-Aktionen!

Und das du von PDO keine Ahnung hast (muss man auch nicht unbedingt, wenn man nur mit MySQL zu tun hat), hat man ja in anderen Foren schon oft genug gelesen. Aber bitte, dann nehme nicht irgendwelche Scripte aus dem Netz, bastele dran rum und veröffentliche sie nicht!
Ist ein alter Beitrag - aber immer noch lesbar und daher muss ich hier etwas richtigstellen...

@m.scatello:

Woher kommt die Weisheit dass htmlspecialchars() nur für Ausgaben verwendet wird? DAS IST GEFÄHRLICHER QUATSCH !!!
Schon mal was von SQL-Injections gehört?

Beispiel:

Gib mal als "Passwort"folgendes ein: password' OR 1='1
Ergibt als SQL-Anweisung: sql="SELECT id FROM users WHERE username='user' AND password='password' OR 1='1'

Und nun? Nach boolscher Logik ergibt die Anweisung TRUE !!!!! Und schon hast du einen unerwünschten Gast in der Datenbank !!!
Mit htmlspecialchars() wäre nie im Leben ein ausführbarer Code entstanden.

Und wo war hier eine Ausgabe ??? NIRGENDS !!!

Ich kann dir 1000de weitere Injections nennen die nur funktionieren wenn Eingaben 1:1 ohne 'Aufbereitung' durchgewunken werden !!!

BITTE KEINEN BLÖDSINN IN FOREN SCHREIBEN WENN NOCH NICHTMAL HALBWISSEN VORHANDEN IST !!! BITTE BITTE BITTE

Und wenn du Ahnung von PDO hättest würdest du wissen wie PDO intern arbeitet:
Anweisung und Werte werden getrennt übergeben -> darum kann mittels Werte keine neue Anweisung entstehen...
UND: PDO wendet intern ebenfalls Methoden zur Sonderzeichenbehandlung an - und deutlich verschärfter als 'nur' htmlspecialchars(),
htmlentities() oder mb_encode_numericentity().!!!

PS: Ich administriere seit 20 Jahren Datenbanken und bin zertifizierter Webentwickler für HTML, css, php, perl, phyton, javascript, sql sowie den
Frameworks sass, bootstrap, jquery, jsValidate und den CMS Typo3, Laravelle, Joomla und WordPress (Webmaster Europe Certificate)

...nur für den Fall dass du auch mir 'gefährliches Halbwissen' vorwerfen willst...
Zitieren
#14
könntest du noch weitere erweiterungen machen z.b wie man ein kleiunes forum oderpm system einbau?
Zitieren
#15
was verstehst du unter kleines Forum ?
Es gibt eigentlich schon kleine Foren , das hatte ich auch schon mal gemacht.
Ich muss mal Googeln wo die waren , dann zeige ich dir das .
Oder hast du eigene Vorstellungen wie das sein soll ?
Zitieren
#16
ich suche so wie das loginscript das du ja übernommen und erweitert hast ein Tutorial für n kleines Forum das wie das login mit php+pdo programmiert wird so die Grundstruktur und code ich komme mit dem join wo man dazu braucht um Tabellen zu verbinden und mit dem antworten auf einen Beitrag nicht klar das verstehe ich nicht
Zitieren
#17
dann frag ich mal wo anderst:-)
Zitieren
#18
Sorry für das späte melden.
Da du von einen Mini Forum redest könnte man das sogar ohne join machen.
In einen Forum wie diesen ist das was anderes.

Kommt immer drauf an was das mini Forum können soll.
Mit Profil,like,Pn usw werden es immer mehr Tabellen , die man irgendwann auch verbinden muss.
Finde auf der schnelle auch nicht das Script wieder wo das Mini Forum drauf ist.l
Suche aber weiter
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste