Patriot schreef op donderdag 19 januari 2012 @ 18:22:
[...]
Aaahhhhh! Door mensen zoals jij klagen websites over mijn wachtwoorden! Waarom zou je er in hemelsnaam voor kiezen om mensen zo te beperken in de karakters waar ze uit mogen kiezen..
edit:
verkeerde persoon

Het boeit mij niets dat websites klagen over
jou wachtwoorden
Ik leg toch netjes uit waarom ik daar (eventueel) voor zou kiezen?!
Dat zou ik doen om eventuele SQL injections te verkomen.
Als je een wachtwoord kiest met een bepaalde lengte en een beperkt soort karakters dan voorkom je op die manier heel makkelijk SQL injections. Toch?
Dat heeft toch geen nut. Alleen mijn executables (op de "thuis server" en op de SQL server ernaast) mogen/kunnen een BEPERKT aantal SQL query's doen. Dan kan diegene inloggen wat die wilt, maar er zullen alleen DIE query's gedaan worden die
ik van te voren heb geprogrammeerd.
Zolang je, in dit voorbeeld, niet bekend bent met 't concept SQL injection (en dus ook de vele andere mogelijke manieren om bepaalde zaken te manipuleren, omzeilen, breken, whatnot) moet je al helemaal niet aan de gang gaan met "seriële verbindingen" en weet-ik-het.
Ik ben bekend met SQL injection. Daar hebben we het eerder in dit topic al over gehad, alleen hebben we het beestje toen een andere naam gegeven...
Dacht je nou echt dat je, groen als je bent*, de rest van de wereld te slim af bent? Mensen die al jaren zo niet decennia lang al in 't vak zitten te kunnen outsmarten?

Het zou niet de eerste keer zijn

*
en dat is niet erg noch een verwijt; we zijn allemaal ooit ergens begonnen
Geloof de mensen die hier zitten en weten waar ze over praten nou maar gewoon; nogmaals: dit kaartenhuis is gedoemd om in te storten, en op spectaculaire wijze

Het is duidelijk dat de meerderheid hier in dit topic daar zo over denkt.
Ik probeer alleen te achterhalen waarom. En verder probeer ik natuurlijk de aller veiligste oplossing voor ons bedrijf te vinden.
He-le-maal niet. Het enige wat je doet is een zutload aan extra lagen (lees: een hele boel extra punten die mis kunnen (en zullen) gaan) toe die uiteindelijk allemaal niets toevoegen. In het geval van SQL injection (wat maar 1 van de mogelijke -tig attack vectors is) zullen ze allemaal braaf de 'DROP DATABASE' transporteren en doorgeven totdat 't bij de database is aangekomen waarna die 't doodvrolijk uitvoert
In mijn executable zorg ik er natuurlijk voor dat er geen enkele manier van SQL injection KAN en ZAL plaatsvinden... Ik had gehoopt dat dit onderhand al duidelijk zou zijn.
als je niet aan de juiste escaping doet/gedaan hebt. En al doe je dat, dan nog zorg je natuurlijk dat die database sowieso alleen maar wordt benaderd met credentials die uiteindelijk niet eens de rechten hebben om te droppen, deleten of whatever. Daar voegt RS232 dus niets aan toe behalve latency en een extra 'tussenstap' die kan uitvallen (= service plat, doei klanten).
RS232 zorgt ervoor dat er ALLEEN data heen/weer wordt gestuurd waarvan
ik (in mijn 2 executables) bepaal of dat mag of niet. Dat mag toch ook wel duidelijk zijn onderhand. Als er alleen al het woordje "DROP" of "DELETE" of "INSERT" in de Gebruikersnaam of Wachtwoord string staat, wordt het al afgekapt. (betekend natuurlijk wel dat wachtwoorden/gebruikersnamen met deze strings erin ook niet mogen

)
En zoals aangegeven: latency boeit 0,0
Het gaat er puur om dat we richting de 100% veiligheid gaan.
Al duurt een SQL query 1 hele seconde. Ik heb toch nog nergens aangegeven waarvoor het uiteindelijk allemaal dient? Jullie denken volgens mij iets teveel in hokjes. "
oh, dat zal wel daar of daarvoor zijn"
Maar zo werkt dat bij ons niet!
Ik vraag gewoon om hulp, en om iets mee te denken met mijn/ons idee.
Natuurlijk ben ik ook blij die hier te krijgen, maar het mag wel wat meer "out of the box" denkend hoor...
Leg alles wat je op school hebt geleerd naast je neer, en probeer iets nieuws te verzinnen zodat het nog beter wordt!
CodeCaster schreef op donderdag 19 januari 2012 @ 18:52:
[...]
Ik heb de term "zwakste schakel" al eens laten vallen, niet?
Je RS-232-oplossing voegt net zo veel toe als iedere query die je binnenkrijgt printen in base64, in een envelop stoppen, deze in beton gieten, dit blok beton opsturen naar het hoofdkantoor, het beton laten weghakken, de envelop uitpakken, de query weer intikken, base64decode erop uitvoeren, en dan uiteindelijk de query laten uitvoeren. Op de server zelf uiteraard, via named pipes, want dan komt er geen TCP/IP aan te pas.
Dat noem ik nu "out of the box" denken. Dat is bijna exact wat ik bedoel. Dit soort idee (nouja, dan niet ZO lomp) is wel waar we heen willen. Klinkt wellicht stom voor sommige (iedereen hier?) maar ik zie zoiets wel zitten.
Dat neemt toch niet weg dat in de eerste stap, het opbouwen van de query, al een beveiligingslek kan zitten?
Heb je helemaal gelijk in. Daarom moet ook DAAR zéker naar gekeken worden!!
Het zal een hacker een worst wezen hoe jij de query verpakt, hij komt uiteindelijk bij de databaseserver uit. Escaping is het keyword hier, en al het overige wat je noemt is volstrekt overbodige onzin omdat het niets toevoegt! Ja, latency misschien, maar het wordt er niet veiliger door.
Escaping (dus tegen SQL injections) is (zeker na dit topic!!) uiteraard iets wat we zorgvuldig gaan toepassen.
MAAR: dat neemt toch niet weg dat als ik alles via TCP/IP doe, dat de server met al die belangrijke gegevens 24/7 online staat om gehackt te worden?! Als een hacker het IP adres van de thuisserver weet, en het lukt hem vervolgens om daar "Remote Desktop" of "LogMeIn" op te installeren, om vervolgens gewoon met een kleine database-tool de SQL server in het netwerk (wat volgens jullie gewoon met ethernet kabel aan moet worden gesloten) weet te vinden, dan kun je je wel voorstellen wat er gebeurt...
Ik snap gewoon niet waar je angst voor TCP/IP vandaan komt. Onbegrip wellicht. Als het een hacker al lukt om de initiële query aan te passen, is alle overige beveiliging overbodig. Behalve als je goed escapet.

De "angst" voor TCP/IP komt vanwege het feit dat zelfs de best beveiligde bedrijven/instanties via TCP/IP gehackt worden. Wij zijn dadelijk een bedrijf waar het best zinvol is om te hacken. Uiteraard ga ik hier verder niets meer over vertellen, maar dat kun je van mij aannemen.
Ik snap nog altijd niet dat
juist Tweakers, die normaal gesproken met allerlei fantastische, non-standaard, ultra-leet oplossingen komen hier dan juist weer enorm tegen zijn. Volgens mij komt dat alleen omdat er op dit gebied niet genoeg "out of the box" kan worden gedacht.
No effence, ik heb absoluut veel aan de tips omtrent hashen, escapen en dat soort dingen. Maar waarom men hier zo hard roept waarom die RS232 niets toevoegt? Begrijp me niet verkeerd, ik probeer het al een aantal uur te begrijpen, maar het lukt me gewoon niet. Dat is toch zo veilig als maar kan zijn?? Hoe vaak wordt een database leeg getrokken zodat de bedrijfs (of nog erger de klant) gegevens op straat liggen? Dat zal hier niet gebeuren!
Desnoods moet ik er nog een microcontroller tussen zetten die e.e.a. in de gaten houd, en mij dan smst of belt als er iets mis gaat (teveel data in één keer uit de database gehaald of whatever) zodat ik van waar ook ter wereld de verbinding fysiek kan uitschakelen (een motortje met hefboom trek gewoon de stekker eruit)
Ook hier weer juist fijn dat er latency is (ik ga er zelfs voor zorgen dat er maar een bepaald aantal transacties per minuut mag plaatsvinden). Als ik dan niet binnen een uur kan reageren omdat ik bijvoorbeeld ergens een pint aan het drinken ben, dan kan er maximaal een bepaald aantal records uit de DB worden gehaald. Het is nogal een verschil als er 20 klantgegevens op straat liggen of 100.000... Simpel zat lijkt me toch?!
Hopelijk is mijn visie en bedoeling nu nog meer duidelijk...
Nogmaals: sowieso iedereen super bedankt voor de tips waar ik wél van kan begrijpen waarvoor het goed of fout is!!