Gå til innhold

Tips: 1 ting du bør ungå...


Anbefalte innlegg

Skrevet

Hei :)

Vet ikke om det er mange som kan dette eller vet om det, men når man bruker MySql for brukernavn og passord så bør man finne raden = $passord ikke

$passord = raden og samme med brukernavn, og man MÅ / BØR fjerne muligheten for en bruker å skrive inn "' --" uten (") for da kan personen kommentere ut resten av spøre stringen som f.eks passord slik at spøre stringen bare blir

 

$sql = "SELECT * FORM brukere WHERE bruknavn = $brukernavn";

 

dette er da Sql injection(eller hvordan det skrives, så nå kan alle dere små WannaBe hackere på 14 google d xD)

 

bare tenkte at dette kunne være godt for folk å vite, etter som jeg har sett folk som lar systemet stå åpent... :ohmy:

Videoannonse
Annonse
Skrevet

du må passe på å fjerne ' -- og andre ting som gjør at alt bak blir kommentarer når du tar i mot informasjon :)

 

Lettere å forstå?

Skrevet

Magic quotes fjerner ' tegnet automatisk så -- blir ein del av teksten. Og skulle ikkje magic quotes vere på så kan du altids bruke mysql_real_escape_string ;)

Skrevet

Bruk alltid noe for å escape en string fra en bruker!

 

Aldri noen gang stol på magic quotes, en liten endring i innstillinger på serveren eller en uheldig oppgradering - og magic quotes er slått av.

 

Dette er vel ikke store problemet for de som lager små sider til seg selv, men hvorfor lære en uvane?

Skrevet

Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og det vil være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel slik at du unngår at en moderator stenger tråden. Vennligst forsøk å ha dette i tankene neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler.

 

Bruk p_edit.gif-knappen i første post for å endre emnetittelen.

 

(Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men p_report.gif gjerne dette innlegget når tittelen er endret, så vil det bli fjernet..)

Skrevet
Bruk alltid noe for å escape en string fra en bruker!

 

Aldri noen gang stol på magic quotes, en liten endring i innstillinger på serveren eller en uheldig oppgradering - og magic quotes er slått av.

 

Dette er vel ikke store problemet for de som lager små sider til seg selv, men hvorfor lære en uvane?

8472911[/snapback]

 

Neida sier ikkje at du skal stole på margic quotes, du må altid hugse å escape bruke input men du må og hugse magic quotes vist du får problemer med dobbel escaping.

Skrevet

mysql_real_escape_string FTW!

 

Kan unngå mye problemer med den.

 

Men strengt tatt, det å kommentere ut gjør jo ikke store skaden, mer alvorlig er det når man begynner å manipulere spørresetningen med '.

 

F.eks:

Original setning:

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash';

 

Med --

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash--'; <-- Vil ikke returnere noe

 

Og med manipulering

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash' OR 'x' = 'x'; <-- Vil returnere en rad selv om passordet er feil.

 

Men det er ikke før man begynner å injisere det begynner å bli riktig farlig.

 

 

Og btw; Tror de fleste brukerene her på forumet visste dette fra før ;)

Skrevet
F.eks:

Original setning:

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash';

 

Med --

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash--'; <-- Vil ikke returnere noe

 

8475188[/snapback]

 

-- Blir brukt for å kvitte seg med det siste ' tegnet. Slik som dette

 

Input: ' OR 'x'='x' --

SELECT * FROM users WHERE username='Brukernavn' AND password = '' OR 'x'='x' --';

 

Men som du sa treng du ikkje dette vist du droppar det siste ' tegnet i inputten.

Gjest Slettet+142
Skrevet

-- kvitter seg ikke bare med det siste '-tegnet. -- kvitter seg med resten av sql setningen...

Skrevet

joda gjør forsovet det, dumme meg xD

 

du kan lett endre

SELECT * FROM users WHERE username='Brukernavn' AND password = 'hash';

 

til

 

SELECT * FROM users WHERE username='Brukernavn' --' AND password = 'hash';

Gjest Slettet+142
Skrevet (endret)

ja det er lett.

- så lenge inputen ikke kontrolleres med mysql(i)_real_escape_string(), add_slashes() og de andre slash-adderende funksjonene ;)

Endret av Slettet+142
Skrevet
SELECT * FROM users WHERE username='Brukernavn' --' AND password = 'hash';

8475842[/snapback]

 

 

Du mener vel

...' -- ' ...

 

Mellomrom etter "--", ellers går det ikke :p

 

 

[/pirkemodus]

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...