login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SQL injection

Offline RIC - 12/06/2007 14:13
Avatar van RICLid Wat is de beste/veiligste manier om SQL injection tegen te gaan?

12 antwoorden

Gesponsorde links
Offline marten - 12/06/2007 14:15
Avatar van marten Beheerder het webprogrammer hacking guide van phpfreakz te lezen.
Offline Abbas - 12/06/2007 14:38
Avatar van Abbas Gouden medaille

Crew .NET
DIT script gebruiken! 
Offline Thomas - 12/06/2007 15:16
Avatar van Thomas Moderator
Citaat:
het webprogrammer hacking guide van phpfreakz te lezen.
Dat artikel grenst aan hype / interessantdoenerij if you ask me. De foto van de auteur alleen al spreekt boekdelen. Leuk om een keer te lezen, maar lijkt meer bedoeld om indruk te maken dan iets anders.

In het algemeen doe je er verstandig aan "input te filteren, en output te escapen" (or so I have heard) en dat klinkt wel logisch.

Dus: voer type-checks uit op invoer uit URL / POST als je deze in je queries verwerkt.
Offline marten - 12/06/2007 15:25
Avatar van marten Beheerder
Citaat:
Dus: voer type-checks uit op invoer uit URL / POST als je deze in je queries verwerkt.


Dat haalde ik ook als conclusie uit dat artikel 
Offline Sitebase - 12/06/2007 19:40
Avatar van Sitebase PHP expert
Citaat:
titjes


Daar heb je zo'n code niet voor nodig hoor. Gewoon mysql_real_escape_string(waarde uit POST of GET) gbruiken.
Offline Abbas - 12/06/2007 20:03
Avatar van Abbas Gouden medaille

Crew .NET
Niet per se, maar ik vind het een handige code! 
Offline Sitebase - 12/06/2007 20:11 (laatste wijziging 12/06/2007 22:14)
Avatar van Sitebase PHP expert Het is maar hoe je het graag hebt he:D .

Citaat:
Rens edit:
Volgens de regels is het nog steeds de bedoeling om AN te spreken...
Offline Nanon - 12/06/2007 22:48
Avatar van Nanon PHP interesse Gewoon 2 kleine functies voor schrijven. Bijvoorbeeld:

  1. <?php
  2.  
  3. function input( $string ) {
  4.  
  5. $string = mysql_real_escape_string( $string );
  6.  
  7. return $string;
  8.  
  9. }
  10.  
  11. function output( $string ){
  12.  
  13. $string = htmlspecialchars( $string );
  14. $string = stripslashes( $string );
  15.  
  16. return $string;
  17.  
  18. }
  19.  
  20. ?>


Als je iets gaat inserten input( $_POST['blaat'] ); en je uit de database halen door output( $row['blaat'] ); En je kan het altijd nog uitbreiden.
Offline WumTol - 12/06/2007 23:19 (laatste wijziging 12/06/2007 23:24)
Avatar van WumTol PHP beginner Ik gebruik altijd zoiets:
  1. <?php
  2. if (!empty($_POST['submit'])) //als het formulier verzonden wordt
  3. {
  4. //klein scriptje tegen injection (altijd boven je query)
  5. {
  6. foreach ($_POST as $k => $v)
  7. {
  8. $_POST[$k] = stripslashes($v);
  9. }
  10. }
  11.  
  12. foreach ($_POST as $k => $v)
  13. {
  14. if(version_compare(phpversion(),"4.3.0") == "-1")
  15. {
  16. $_POST[$k] = mysql_escape_string($v);
  17. }
  18. else
  19. {
  20. $_POST[$k] = mysql_real_escape_string($v);
  21. }
  22. }
  23.  
  24. //MySQL query
  25. mysql_query("INSERT INTO tabel (id, test, blaat) VALUES ('', '".$_POST['test']."', '".$_POST['blaat']."')");
  26. }
  27. else
  28. {
  29. //formulier
  30. }
  31. ?>


En bij het ophalen moet je altijd gebruik maken van (numerieke) id's:
  1. <?php
  2. if (is_numeric($_GET['id']))
  3. {
  4. //MySQL query
  5. $query = mysql_query("SELECT * FROM tabel WHERE id='".$_GET['id']."'");
  6. }
  7. else
  8. {
  9. //fout
  10. }
  11. ?>
Offline Ibrahim - 13/06/2007 12:17
Avatar van Ibrahim PHP expert
  1. <?php
  2.  
  3. function input( $string ) {
  4.  
  5. return mysql_real_escape_string( $string );
  6.  
  7. }
  8.  
  9. function output( $string ){
  10.  
  11. return htmlspecialchars( stripslashes( $string ) );
  12.  
  13. }


zo kan het ook 
Offline RIC - 13/06/2007 13:55
Avatar van RIC Lid Is er ook iemand die weet hoe je dat sql injection anders valt het niet te testen natuurlijk of het echt help ik heb het zelf al geprobeert met:
' or 1 = 1
maar dat lukte al niet op mijn site ook niet voordat ik dat scriptje gebruikte. 
Offline markpieper - 13/06/2007 14:09
Avatar van markpieper HTML beginner En als je eens bij het inlogscherm probeert: ' OR id = 1--
En lees deze eens: http://www.phphulp.nl/php/tutorials/3/444/
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.416s