sql-injection voorkomen

Pagina: 1
Acties:
  • 29 views sinds 30-01-2008

  • josvane
  • Registratie: Oktober 2002
  • Laatst online: 13-02 07:28
Hoi,

De volgende code heb ik:"

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_GET['add'])){
if (!get_magic_quotes_gpc()){
$_POST['indentificatie'] = addslashes($_POST['indentificatie']);
}
## Controleren of items voorkomen in de menu_koppelen
if($_POST['indentificatie'] && mysql_result(mysql_query("SELECT COUNT(indentificatie) 
                                                            FROM content 
                                                            WHERE indentificatie 
                                                            LIKE '{$_POST['indentificatie']}'"),0)) 
                                                            {
    echo ("
    Het item ".$_POST['indentificatie']." bestaat al");die;}
}
?>


Uiteraard wil ik voorkomen dat ik last krijg van sql-injectie. Heb inmiddels hierover een hoop artikel gelezen. De volgende onder andere
http://phpfreakz.nl/artikelen.php?aid=74&page=3
http://www.webessence.nl/artikelen/PHP/Veilig-scripten/
http://gathering.tweakers.net/forum/list_messages/1006293///sql%2Cinjection

Het wordt mij nog steeds niet goed duidelijk hoe je het daadwerkelijk kan voorkomen. Doe ik het in het bovenstaande voorbeeld goed of moet ik meer aanpassen?

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 09:08

orf

Het is niet zo netjes om de $_POST vars te wijzigen (stel voor dat je ze ook nog een keer op het scherm wilt printen / op slaan in bestand, etc).

Je kunt dat beter in je query doen.

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 10-02 13:38
zoek eens op mysql_real_escape_string

:9

Iets meer gefocused voor het gebruik naar MySQL en dit is ook bedoeld op de injections te voorkomen.

[ Voor 54% gewijzigd door Keiichi op 21-08-2006 22:33 ]

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


  • Optix
  • Registratie: Maart 2005
  • Laatst online: 06-02 18:12
Als er iets word gepost ga ik er vanuit dat je een timestamp oid mee wegschrijft...
Check eerst of de gebruiker die iets post de laatste laten we zeggen 5 minuten als iets heeft weggeschreven, zo ja dan blocken die hap of netjes zeggen dat hij ff moet wachten :)

[ Voor 9% gewijzigd door Optix op 21-08-2006 22:34 ]

.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ik zie ook potentiele HTML/script injection:
PHP:
1
2
echo ("
    Het item ".$_POST['indentificatie']." bestaat al");

;)

Intentionally left blank


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

NightFade schreef op maandag 21 augustus 2006 @ 22:33:
Als er iets word gepost ga ik er vanuit dat je een timestamp oid mee wegschrijft...
Check eerst of de gebruiker die iets post de laatste laten we zeggen 5 minuten als iets heeft weggeschreven, zo ja dan blocken die hap of netjes zeggen dat hij ff moet wachten :)
Wat heeft dat met het probleem te maken? :o

Verder is dit al uitgebreid aan de orde geweest in dit subforum. Over het hoe en waarom van SQL-injectie zijn diverse topics geweest, en het staat zelfs uitgebreid behandeld in onze FAQ. Die FAQ is er ook niet voor niets natuurlijk, en het zou fijn zijn als je die in het vervolg doorneemt voor je een topic opent.

Programming FAQ - PHP

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.