Como había mencionado anteriormente, para desarrollar aplicaciones seguras, hay que conocer bien la herramienta o lenguaje con el que se trabaja. Espero que estos pequeños quiz intenten mostrar algunas de las fallas más comunes que cometen los que recién empiezan o ya desarrollan con PHP.

El código mostrado a continuación, ¿tiene alguna falla? ¿cuál?

php:
<?php

if      ( empty( $_GET['user'] ) && empty( $_POST['user'] ) )
        die( 'Bad parameter' );
elseif ( ! empty( $_GET['user'] ) && intval( $_GET['user'] ) < 0 )
        die( 'Bad parameter' );
elseif ( ! empty( $_POST['user'] ) && intval( $_POST['user'] ) < 0 )
        die( 'Bad parameter' );

$sql = 'SELECT  id, name, email
        FROM    users
        WHERE   id = '
. mysql_real_escape_string($_REQUEST['user']);

echo $sql;

?>

Como ya saben, el código mostrado sólo es referencial, pero vale comentar la forma correcta de implementar ese pedazo de código.