Php 触发错误页或忽略get参数中的标记?

Php 触发错误页或忽略get参数中的标记?,php,code-injection,Php,Code Injection,我只是想阻止PHP中的代码注入。 如果用户提供的get参数与“clean”版本不匹配,那么抛出异常还是忽略该参数值内的标记更好 走哪条路 $param = $_GET["option"]; if($param !== strip_tags($param)) { throw new Exception("Nice try."); } 用户当然会得到一个漂亮的404页面。 或者干脆忽略标签,继续用一个干净的版本 $param = strip_tags($_GET["option"]); 您

我只是想阻止PHP中的代码注入。 如果用户提供的get参数与“clean”版本不匹配,那么抛出异常还是忽略该参数值内的标记更好

走哪条路

$param = $_GET["option"];

if($param !== strip_tags($param))
{
  throw new Exception("Nice try.");
}
用户当然会得到一个漂亮的404页面。 或者干脆忽略标签,继续用一个干净的版本

$param = strip_tags($_GET["option"]);

您应该始终清理任何用户输入。至于抛出异常,如果值不符合预期,是否需要应用程序继续工作?在strip_标记可能与原始标记不完全相同的情况下,是否存在合法的值?该值应该是类的名称。在脚本的后面,我为该类创建了一个新对象,以防该类本身存在。因此,如果输入了一个不“允许”的值,则无论哪种方式都会出现异常。问题是我是否应该为注入尝试构建额外的异常?!如果可能的话,与类的白名单进行比较要比
strip_标记
更好地验证输入。在你的情况下,退出将是最好的。更好的方法是回显一般错误消息并退出。该异常将导致
未捕获异常
php错误,您不应该向用户显示php错误。白名单是一个好主意,谢谢。我只是试图简化代码(可能要简化很多),当然,我的代码中有一个尝试和一个陷阱。谢谢你的帮助。祝你有愉快的一天。