login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sql injection beveiliging

Offline elecomte - 14/11/2008 18:30
Avatar van elecomteGrafische interesse Ik heb de volgende functie;

  1. <?php
  2. function quote_smart($value) {
  3. $value = stripslashes($value);
  4. }
  5. if(version_compare(phpversion(),"4.3.0") == "-1") {
  6. return mysql_escape_string($value);
  7. } else {
  8. return mysql_real_escape_string($value);
  9. }
  10. }
  11. ?>


Wat doet die version compare precies? Of hoe werkt het?
Of heeft iemand mss een betere function om variabelen die je wil in je database wil plaatsen te beveiligen tegen sql injection?

mvg

2 antwoorden

Gesponsorde links
Offline Wim - 14/11/2008 18:35
Avatar van Wim Crew algemeen mysql_real_escape_string gewoon... Je kan er ondertussen wel vanuit gaan dat een host php 4.3.0+ gebruikt, ze moesten nl al lang allemaal php5 ondersteunen... Met de komst van php6 lijkt php4 me overbodig...

PHP.net: version_compare kan het niet beter en duidelijker uitleggen
Offline JBke - 15/11/2008 12:02 (laatste wijziging 15/11/2008 12:05)
Avatar van JBke PHP gevorderde Als je volledig veilig wil spelen kan je het volgende gebruiken maar zoals wimmarien zegt, normaal bij een goede host heb je dit allemaal niet meer nodig.

in je Application controller of gewoon ergens een functie zet je:

  1. <?php
  2. /**
  3.   * Strips slashes for $_GET, $_POST and $_COOKIE
  4.   */
  5. public static function superglobal_strip_slashes() {
  6. if (isset($_GET) && !empty($_GET)) {
  7. $result = Application::strip_slashes_recursive($_GET);
  8. $_GET = $result;
  9. }
  10. if (isset($_POST) && !empty($_POST)) {
  11. $result = Application::strip_slashes_recursive($_POST);
  12. $_POST = $result;
  13. }
  14. if (isset($_COOKIE) && !empty($_COOKIE)) {
  15. $result = Application::strip_slashes_recursive($_COOKIE);
  16. $_COOKIE = $result;
  17. }
  18. }
  19. /**
  20. * Recursively strip slashes from a value
  21. *
  22. * @param mixed $value
  23. */
  24. public static function strip_slashes_recursive(&$value) {
  25. $result = is_array($value) ? array_map(array('Application', 'strip_slashes_recursive'), $value) : stripslashes($value);
  26. return $result;
  27. }
  28. ?>


in je index of in je bootstrap, whatever zet je het volgende:

  1. <?php
  2. // Magic quote check
  3. $magicQuotesEnabled = (bool) ini_get('magic_quotes_gpc');
  4. if($magicQuotesEnabled === true) {
  5. Application::superglobal_strip_slashes();
  6. }
  7. ?>


Zo ben je zeker dat alles gestript word. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.249s