intval oder is_numeric? PHP

bin ich das abrufen ein text aus der mysql-Datenbank und ich bekomme es von ID aus in der url:

Website.php?id=1 und so weiter

Was betrachtet wird, werden die meisten sicher zu verhindern, dass sql-injection und so Zeug. Ist dieser Weg richtig:

<?php
$news_id = $_GET['news_id'];

if(!is_numeric($news_id)) die('Wrong');

//mysql_query and stuff here
?>

ODER so:

<?php
$news_id = $_GET['news_id'];

if(!intval($news_id)) die('Wrong');

//mysql_query and stuff here
?>
  • Eine kleine Anmerkung zu is_numeric, ermöglicht es hexadezimalen Zeichen (keine große Sache, security-wise gesehen). Wenn Sie wirklich, wie zu überprüfen, ob ein numerischer Wert, ctype_digit verwenden, stellen Sie sicher, dass Sie eine Zeichenfolge, die nicht ein int: ctype_digit ( (int) 123 ); // false ctype_digit ( '123' ); // true
InformationsquelleAutor | 2009-09-04
Schreibe einen Kommentar