SQL-injectie |
gwcbakker Oudgediende
WMRindex: 7.126 OTindex: 2.741
|
Iemand hier die (nare) ervaringen heeft met (de gevaren van) SQL-injectie? Ik wil een loginscript (PHP) schrijven, maar het moet wel een beetje moeilijk te hacken zijn natuurlijk. |
|
Jannick Oudgediende
WMRindex: 1.125 OTindex: 42.838 T |
Hmm, html entities gebruiken, stripslashes, en dan kom je er wel, en trouwens, élk script is te hacken |
|
gwcbakker Oudgediende
WMRindex: 7.126 OTindex: 2.741
|
@Jannick: Ik pretendeer ook niet een hack-vrije script te maken maar het is natuurlijk wel lullig als één of ander wiseguy met een slinkse input gelijk overal in kan komen |
|
Jannick Oudgediende
WMRindex: 1.125 OTindex: 42.838 T |
Klopt.. Nou, kom niet aan met maxlength, dat is te makkelijk om te omzeilen. Verder, MD5 gebruiken in de database, als je cookies gaat gebruiken zoveel mogelijk informatie meezenden (wat wel bruikbaar is dan, gebruikers id, paswoord in md5), als je sessies gaat gebruiken alleen het nodige in je sessies stoppen, maar dat wist je aarschijnlijk al |
|
Kettling Actief lid WMRindex: 45 OTindex: 142 Wnplts: Lelystad
|
MD5 is al wel aardig gekraakt, vul maar een hash in op google, en waarschijnlijk staat het woord wel in de resultatenlijst |
|
Kwabbernoot Senior lid WMRindex: 32 OTindex: 283 S |
Maak een random encryptie van bijvoorbeeld 500 tekens (volledig alfanumeriek) en sla deze bij het wachtwoord op als sleutel. Uiteraard kun je er ook een hash van maken, maar de techniek is hetzelfde. Als er ingelogd wordt dan meteen een nieuwe sleutel maken en opslaan. Verder zorgen dat er geen sql-achtige commando's ingevoerd kunnen worden. Met alleen stripslashes ben je er namelijk niet. Bedankt maar: s/elect levert na een strip slashes: select op. Dus na strip slashes even checken of er geen sql commando's in voorkomen. Dan ben je redelijk veilig bezig lijkt mij. |
|
Ikke Oudgediende
WMRindex: 888 OTindex: 29.466 S |
Quote Kettling: MD5 is al wel aardig gekraakt, vul maar een hash in op google, en waarschijnlijk staat het woord wel in de resultatenlijst Daarom neemt men MD5sums tegenwoordig met een korreltje zout |
|
gwcbakker Oudgediende
WMRindex: 7.126 OTindex: 2.741
|
@Kwabbernoot: Bedankt voor de tip: Checken of er SQL-commando's in voorkomen. @Ikke/Kettling/Jannick: Ik kwam crypt tegen. Dat maakt (o.a.) gebruik van MD5 en/of DES |
|
Mmore Administrator
WMRindex: 1.439 OTindex: 15.022
|
Geef nooit het wachtwoord mee in een cookie. Als je wilt dat gebruikers kunnen onthouden wie ze zijn, genereer dan een willekeurige code die je 1) in een database opslaat en 2) aan de gebruiker meegeeft in de cookie. Wanneer de gebruiker terug komt check je of deze code klopt met bijv. het IPadres en de gebruikersnaam/ID, en daarna reset je de code weer naar iets anders. Zorg ervoor dat je altijd userinput beveiligd. Vergeet niet dat ook hidden value's aangepast kunnen worden door script kiddie's. Lees veel van dit soort tutorials en combineer de kennis die je vergaard, en je komt een heel end. Succes, en als je hulp nodig hebt horen we t wel |
|
gwcbakker Oudgediende
WMRindex: 7.126 OTindex: 2.741
|
't Project ligt even stil: drukdrukdruk, maar zodra 't weer actueel is laat ik weer van me horen. |
|
tosti Senior lid WMRindex: 416 OTindex: 249
|
misschien heb je wat aan deze site? daar zit ook iets met javascript injectie in, en volgens mij ook SQL, php zoiezo natuurlijk |
|
Whiteley Erelid
WMRindex: 615 OTindex: 2.529
|
Quote Kettling: MD5 is al wel aardig gekraakt, vul maar een hash in op google, en waarschijnlijk staat het woord wel in de resultatenlijst Als iemand de MD5 van een wachtwoord van iemand anders heeft dan kan ie in je database dus dan ben je sowieso al de lul. Je moet zorgen dat niemand kan knoeien in je queries en alle GET's en POST's beveiligen. Ik heb mijn inlog scripts met sessies, als iemand inlogt username en password controlen en dan zet je in die sessie het userid van die persoon. Ik gebruik trouwens SHA1 i.p.v MD5 |
|
heraux Oudgediende
WMRindex: 9.537 OTindex: 27.258 T S |
En whatabout blowfish? |
|
Mmore Administrator
WMRindex: 1.439 OTindex: 15.022
|
Md5 is inderdaad echt de last line of defense. Je kan ook zowel SHA1 als MD5 gebruiken |
|
gwcbakker Oudgediende
WMRindex: 7.126 OTindex: 2.741
|
Quote heraux: En whatabout blowfish? What about Blowfish? |
|
Mmore Administrator
WMRindex: 1.439 OTindex: 15.022
|
Blowfish is een 256mbit encryptie functie, als ik het goed heb. |
|
_Marux Junior lid WMRindex: 9 OTindex: 8 Wnplts: Emmen S |
Quote gwcbakker: Iemand hier die (nare) ervaringen heeft met (de gevaren van) SQL-injectie? Ik wil een loginscript (PHP) schrijven, maar het moet wel een beetje moeilijk te hacken zijn natuurlijk. Als je echt een veilig login systeem wilt schrijven, stop dan met PHP en ga Perl of Python gebruiken. |
|
Mmore Administrator
WMRindex: 1.439 OTindex: 15.022
|
PHP werkt uitstekend voor dit doel hoor. De moeite om een nieuwe taal te leren weegt zeker niet op tegen de voordelen van deze nieuwe talen. |
|
_Marux Junior lid WMRindex: 9 OTindex: 8 Wnplts: Emmen S |
Quote Mmore: PHP werkt uitstekend voor dit doel hoor. De moeite om een nieuwe taal te leren weegt zeker niet op tegen de voordelen van deze nieuwe talen. Dat ben ik niet met je eens; Allereerst is het algemeen bekend dat een PHP applicatie meestal zo lek als een mandje is, ook al ligt het aan de programmeur die het veilig maakt. Ik kan nu wel andere talen gaan noemen maar daar schiet ik niet mee op. Als ik dat ga doen krijgen we een flamewar over wat beter is (Linux/Windows/Apple/BSD) en dus een oneindige discussie. Wat ik wel wil zeggen is dat webapplicatie ontwikkeling voor mij meestal uit Python en Perl bestaat omdat deze talen nu eenmaal sneller en eenvoudiger werken en veiliger zijn dan PHP. Maar webapplicaties zijn niet mijn ding, ik doe meestal C++ en Assembly. |
|
Ikke Oudgediende
WMRindex: 888 OTindex: 29.466 S |
Quote _Marux: Ik kan nu wel andere talen gaan noemen maar daar schiet ik niet mee op. Als ik dat ga doen krijgen we een flamewar over wat beter is (Linux/Windows/Apple/BSD) en dus een oneindige discussie. Waarom zou je een discussie krijgen over besturingssystemen als je verschillende talen gaat opnoemen? Python, Perl en PHP zijn allen cross-platform. Daarbij noem je er daarna alsnog twee op Als je een dedicated server hebt, is het geen probleem: daarop kun je installeren wat je wil. Maar als je mensen aan het helpen bent met een site die shared gehost wordt, dan zit je al heel snel vast aan PHP (of nog erger: ASP ). Quote _Marux: ik doe meestal C++ en Assembly. Geen COBOL? (grapje) |
|
_Marux Junior lid WMRindex: 9 OTindex: 8 Wnplts: Emmen S |
Quote Ikke: Quote _Marux: Ik kan nu wel andere talen gaan noemen maar daar schiet ik niet mee op. Als ik dat ga doen krijgen we een flamewar over wat beter is (Linux/Windows/Apple/BSD) en dus een oneindige discussie. Waarom zou je een discussie krijgen over besturingssystemen als je verschillende talen gaat opnoemen? Python, Perl en PHP zijn allen cross-platform. Daarbij noem je er daarna alsnog twee op Quote _Marux: ik doe meestal C++ en Assembly. Geen COBOL? (grapje) Ik nam als voorbeeeld die besturingssystemen omdat daar meestal flamewars om te doen zijn. Quote Ikke: Als je een dedicated server hebt, is het geen probleem: daarop kun je installeren wat je wil. Maar als je mensen aan het helpen bent met een site die shared gehost wordt, dan zit je al heel snel vast aan PHP (of nog erger: ASP ). Klopt helemaal, maar waar PHP is, is ook Perl want een PHP server is bijna altijd Linux. |
|
Ikke Oudgediende
WMRindex: 888 OTindex: 29.466 S |
Quote _Marux: Ik nam als voorbeeeld die besturingssystemen omdat daar meestal flamewars om te doen zijn. Lang niet altijd hoor Genoeg flamewars over C++ versus Java, Python versus Ruby versus Perl, Emacs versus Vim (klassieker ), Gnome versus KDE versus [willekeurige desktop manager] etc Quote _Marux: Klopt helemaal, maar waar PHP is, is ook Perl want een PHP server is bijna altijd Linux. Ik heb vijf webhosts (shared) gehad, maar allemaal draaiden ze op FreeBSD. Niet dat vijf een statistisch interessant getal is, maar er zat geen perl op. |
|
_Marux Junior lid WMRindex: 9 OTindex: 8 Wnplts: Emmen S |
Quote Ikke: Ik heb vijf webhosts (shared) gehad, maar allemaal draaiden ze op FreeBSD. Niet dat vijf een statistisch interessant getal is, maar er zat geen perl op. Beetje vreemd dat FreeBSD geen standaard Perl ondersteund? Linux zit het zo ingebakken dat je het er met geen mogelijkheid uit haalt. Ik ben nooit aan FreeBSD begonnen omdat het helaas niet al te goede support heeft met drivers... Nu vraag ik mij af in hoeverre deze zijn geport vanuit Linux? |
|
Ikke Oudgediende
WMRindex: 888 OTindex: 29.466 S |
Ik heb FreeBSD zelf nooit geprobeerd, OpenBSD (een fork ervan) wel eens. Het draait perfect op mijn hardware (alleen geen wireless/video drivers, maar met een paar hacks heb ik ook die erin gekregen).
Verder kun je geen drivers van Linux naar BSD porten, vanwege de licentie: alle GPL code moet GPL blijven, maar alle code die in de BSD tree geselecteerd wordt moet een BSD-stijl licentie meekrijgen. |
|
heraux Oudgediende
WMRindex: 9.537 OTindex: 27.258 T S |
Ik ben zelf met NetBSD begonnen - het is ware magie op welke hardware het allemaal draaid - Pentium II, Pentium I, 486.. AMD-K2.. Tot de allerlaatste Multicores. Zelfs de 386 lukt - alleen moet je het op een snelle installeren en dan in een 386 terug zetten. Jammer is dat de overvloed aan software die bij linux via een packet-dienst geïnstalleerd wordt niet altijd beschikbaar is via pkg_add. Voor bepaalde zaken is NetBSD geweldig - mijn eerste Server - een compaq proliant 1500 - liep op NetBSD 2.0 - Er was maar 16Mb aan werkgeheugen waarvan er 8 in gebruik was. Alles bleef lopende. About BlowfishDownload versie 4.0 van NetBSDVraag gerust als het even niet lukt - niet dat ik alles weet.. maar ik zal wel proberen . |
|