我需要一个只有3个字母的参数传递给bash脚本。PHP GET安全
如果我只是将所有内容切成3个字母以上,它足够安全吗?
$var = $_GET['var'];
$var = substr($var, -3);
我想不出一种方法来利用这个,但谁知道。
我需要一个只有3个字母的参数传递给bash脚本。PHP GET安全
如果我只是将所有内容切成3个字母以上,它足够安全吗?
$var = $_GET['var'];
$var = substr($var, -3);
我想不出一种方法来利用这个,但谁知道。
我不认为这是安全的。谁知道bash中的三个字符可能是什么?
正则表达式如何指定允许的字符?这可能是更安全的方法。
使用正则表达式过滤器:
$var = filter_var($_GET['var'], FILTER_VALIDATE_REGEXP,
array("options"=>array("regexp"=>"--- your regex ---")));
if($var!==false) {
// pass to bash
}
谢谢,这实际上是有道理的 – Heliosh
你应该根据你将要使用它的内容(可能是MySQL查询)转义输入。如果输入不正确而不是仅仅是剪切它,那么返回错误信息可能会更好,因此使用脚本的人知道错误发生了什么,如果他意外通过或者没有错误输入。
解释什么你到底需要做什么? – Deepak
这取决于很多事情。我甚至不知道从哪里开始。 – Phiter
消毒数据通常是一个坏主意。只要测试它的合法性,如果不合法就把它扔掉。 – maxhb