Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Login sha
08-05-2016, 15:30 (Denne besked var sidst ændret: 08-05-2016, 15:37 af Doctor Blue.)
#21
RE: [PHP] Login sha
(07-05-2016, 19:23)Ash Skrev: Det er sådan de fleste tænke ja Tongue Hvis du nu fx sanitizede input og alle ' osv. blev til \' osv. i databasen, ville en tredjepart få svært ved at de-sanitize det perfekt, med mindre det er i samme sprog. Hvis du fx først kører htmlentities() på dit input, ville du få en masse &lt; og &gt; i stedet for < og >. Hvis du gemmer det i databasen, skal du derefter køre html_entity_decode() i PHP (hvis du skal læse det 100% som det blev inputtet) eller finde en anden metode i et andet sprog. Sådan skal det jo ikke være Happy

Jeg tror du har forvirret det lidt. Du skal altid escape/sanitize input, men du skal først gøre det når det skal vises og det er vigtigt at man vælger den rigtige måde at gøre det på.

(07-05-2016, 22:21)Henta24 Skrev: Hmmm. Nu er jeg ikke så hardcore. Har ikke lavet så meget login og registrering m.m. Tror bare jeg bliver nødt til at finde et eksempel på nettet og bruge dette frem for mit eget :)

Fik tjekket filen. Det er sha1.. Hmmm..

Kode:
$post_accountname = mysqli_real_escape_string($mysql_connect, trim(strtoupper($_POST["accountname"])));
$post_password = mysqli_real_escape_string($mysql_connect, trim(strtoupper($_POST["password"])));
$post_password_final = mysqli_real_escape_string($mysql_connect, SHA1("".$post_accountname.":".$post_password.""));
$post_password2 = trim(strtoupper($_POST["password2"]));
$post_email = mysqli_real_escape_string($mysql_connect, trim($_POST["email"]));
$post_expansion = mysqli_real_escape_string($mysql_connect, trim($_POST["expansion"]));

Det er sha1, men det vil ikke gå igennem??

Tilføjelse. Prøvede at skrive admins:admins og der ville den godt gå igennem, men jeg ved at passworded til selve game serveren er username: admins password: admins

Kan se at der skrives både accountname + password sammen i username:password
$post_password_final = mysqli_real_escape_string($mysql_connect, SHA1("".$post_accountname.":".$post_password.""));

De har prøvet at bruge brugernavnet som salt. Det er elendig kode, de fjerner entropi i passwordet ved at tvinge det til uppercase.
For at lave den samme hash skal du nok skrive noget i retning af
$name = trim($name);
$pass = trim($pass);
$hash = sha1(strtoupper($name . $pass));
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
08-05-2016, 17:34
#22
RE: [PHP] Login sha
(08-05-2016, 15:30)Doctor Blue Skrev: Jeg tror du har forvirret det lidt. Du skal altid escape/sanitize input, men du skal først gøre det når det skal vises og det er vigtigt at man vælger den rigtige måde at gøre det på.

Well ja, men du skal ikke sanitize inputtet og gemme det sanitized input (måske bruger jeg forkert ord?). Som jeg forklarede på IRC, er det først når man skal outputte det, man skal gå ind og escape det osv.
Vi er såmænd enige, tror bare det er et forkert udvalg der bliver brugt.
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
08-05-2016, 20:11 (Denne besked var sidst ændret: 08-05-2016, 20:18 af Doctor Blue.)
#23
RE: [PHP] Login sha
(08-05-2016, 17:34)Ash Skrev: Well ja, men du skal ikke sanitize inputtet og gemme det sanitized input (måske bruger jeg forkert ord?). Som jeg forklarede på IRC, er det først når man skal outputte det, man skal gå ind og escape det osv.
Vi er såmænd enige, tror bare det er et forkert udvalg der bliver brugt.

Det virker bare som om at du siger at det ikke skal MySQL escapes, hvilket jo også typisk er det man mener når man siger sanitize input :)

@Henta: Det her ser da meget rigtigt ud i hvert fald.
[Billede: OGrw4W.png]
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
08-05-2016, 20:39
#24
RE: [PHP] Login sha
(08-05-2016, 20:11)Doctor Blue Skrev: Det virker bare som om at du siger at det ikke skal MySQL escapes, hvilket jo også typisk er det man mener når man siger sanitize input :)

Ah du tænker på når man skal outputte det, ikke? Jeg tænker udelukkende på $_GET, $_POST osv. ikke skal sanitizes, når man smider det ind i databasen. Men med det samme du hiver det ud og skal smide det ud/echo det ud på siden, skal man huske at køre htmlentities() osv. på det.
Sikkert også mere... men kan sgu ikke huske det. Længe siden jeg har lavet noget lignende i PHP.
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
09-05-2016, 17:27
#25
RE: [PHP] Login sha
Ash:

størstedelen af php lort bliver lavet sådan:

$sql = "SELECT * FROM USERS WHERE USERNAME = $_POST[user] AND PASSWORD = $_POST[pwd]"

Det skal sanitizes inden det kommer ind i databasen
så man undgår sqli og så skal det eskapes så hvis jeg skriver "hej\tim" bliver det gemt som "hej\tim" og ikke "hej[TAB]im". så sql statementet hedder "INSERT INTO .. VALUES('hej\\tim');"
Find alle beskeder fra denne bruger
Citer denne besked i et svar
09-05-2016, 21:54
#26
RE: [PHP] Login sha
(09-05-2016, 17:27)dagGi Skrev: Ash:

størstedelen af php lort bliver lavet sådan:

$sql = "SELECT * FROM USERS WHERE USERNAME = $_POST[user] AND PASSWORD = $_POST[pwd]"

Det skal sanitizes inden det kommer ind i databasen
så man undgår sqli og så skal det eskapes så hvis jeg skriver "hej\tim" bliver det gemt som "hej\tim" og ikke "hej[TAB]im". så sql statementet hedder "INSERT INTO .. VALUES('hej\\tim');"

Men hvorfor også lave det lort til at starte med, i stedet for at bruge prepared statements? :)
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
10-05-2016, 07:57
#27
RE: [PHP] Login sha
(10-05-2016, 07:23)BigJ Skrev: Fordi at nogle ikke ved bedre, lad os evt. lige hænge TheMagTime ud, for at bruge normale MySQL (http://php.net/manual/en/book.mysql.php). Love

EDIT: I stedet for at bruge MySQLi eller PDO.

Du mener vel "datDB"? Direkte Adgang Til Databasen Wink

bad joke is bad
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)