Perl: DBI veiligheid

Ik wilde wat weten, stel je hebt een script die er (ongeveer) zo uit ziet:

[code:1:7fc3d3c279]
#!/usr/bin/perl -wT

use strict;
use DBI;
use CGI;

my $q = new CGI;

my $datasrc = ‘mysql:database=DATABASENAAM’;

my $dbh =
DBI->connect("dbi:$datasrc","USERNAME","PASSWORD")
or die "Cannot Connect: " . DBI::errstr;

my $value = $q->param("value");

$dbh->do("insert into table values ("$value")")
or die "Cannot do: " . $dbh->errstr();
[/code:1:7fc3d3c279]

Is deze code veilig? Wat als er als value iets als: dezewaardedoeterniettoe");newline drop table TAELNAAM; nul teken wordt ingevoerd, of iets dat ook zo’n soort bedoeling heeft? Is dat fataal? En hoe zit het met $dbh->prepare(); en $dbh->execute();?

En als dit niet veilig is, hoe kan ik het dan wel (zo) veilig (mogelijk) maken? En als er meerdere manieren zijn: welke is het beste?

Alvast bedankt!

[quote:80bc81a3f5]database DATABASENAME; nul teken wordt ingevoerd, of iets dat ook zo'n soort bedoeling heeft? Is dat fataal?[/quote:80bc81a3f5]

Om dit soort zaken tegen te gaan moet je je Database user rechten op de juiste manier zetten. Dus alles ‘granten’ behalve zaken zoals drop.
Verder kan je je inlog gevens met ‘require’ importeren.

suc6!

Bedankt voor je reactie! Maar wat als een actie als drop table ook niet mag? Is zo'n actie mogelijk met deze code? Heeft er iemand wellicht nog een goed (liefst Nederlands) perl forum?

Alvast bedankt!!!

wellicht staat hier iets: http://gathering.tweakers.net/forum/list_topics/14 ? en anders misschien hier: http://programmeer.pagina.nl/