Ik wil mijn queries veiliger maken door parameters die ik gebruik in mijn query. Te controlerern op SQL functies zoals DROP Table. Zodat kwaat willende niet mijn queries kunnen beinvloeden door de parmeters te veranderen.
iemand een idee hoe ik goed dynamisch opbouw.
Alvast bedankt.
Als het goed is kan niemand daar aanzitten, zorg gewoon dat het van te voren is beveiligd.
1) Zorg er voor dat je een database user gebruikt die alleen die dingen mag doen die hij ook moet doen. Denk aan INSERT, SELECT en UPDATE. Alle andere taken zijn verboden, die rechten geef je niet of trek je in. Dat lost dan al 99% van je problemen op.
2) Queries uitvoeren met pg_query_params() (PostgreSQL) of keer op keer alle parameters met mysql_real_escape_string() gaan beveiligen (MySQL).
Ook zou je nog stored procedures kunnen gebruiken, wanneer je die goed aanmaakt wordt SQL-injection echt volkomen onmogelijk. Gebruikers kunnen dan niet meer bij de tabellen komen en kunnen dus ook niets meer uitvoeren wat ze niet zouden mogen. Hiervoor heb je wel wat meer kennis nodig.
ik ben nog niet heel bekend met php. ik scrijf nu vooral functies die ik met behulp van amfphp van uit flash uitvoer. de parameters die ik van uit flash meestuur naar amfphp zijn makkelijk beinvloedbaar.
aangezien ik niet zo goed ben met php dacht ik zelf meer aan een contole van de query als deze dan bv Drop Table bevat voer ik hem niet uit.
is dit een goede optie?
hoe voer ik dan het beste z'n contole uit
Een user mag DROP TABLE tabelnaam; uitvoeren tot hij een ons weegt, zonder de juiste rechten (die JIJ instelt) zal er nooit een tabel worden verwijderd. En wanneer JIJ er voor zorgt dat al jouw parameters met de reeds genoemde functies worden verwerkt, zal een DROP TABLE gewoon worden gezien als een stuk tekst en niet als een stuk SQL. Hoe je het ook wendt of keert, er kán dan nooit een ongewenste query worden uitgevoerd. En mocht deze wel worden uitgevoerd, dan wordt deze afgeschoten met een foutmelding dat er onvoldoende rechten zijn. Dus waarom zou je dat gaan controleren? Om jezelf extra werk te bezorgen? Schijnveiligheid? Lijkt mij niet bijzonder zinvol.
Gewijzigd op 01/01/1970 01:00:00 door
Frank -bedankt voor de uitleg.
het was dus een overbodige gedachte gang om de parameters te gaan controleren.
Scheelt weer een hoop werk.