我是新手的某个人。我不确定在这个领域阻止xss或注射的最佳方法是什么。
我的网站上有一个字段,它会使用用户提交的IP地址或URL来完成ping / traceroute测试。我真的只想允许HAS被允许用于该功能。我现在整个工作都在工作,但我不确定如何消毒输入。
基本上,这是我的ping功能。我不太了解输出缓冲,但它似乎是从命令中捕获输出的最简单方法。
function ping($domain){
echo "</div>";
$command = shell_exec("ping -c 3 $domain");
ob_start();
echo "<pre>$command</pre>";
$output = ob_get_clean();
echo "\n" . $output;
}
答案 0 :(得分:2)
您可以使用PHP的内置过滤filter_var()
if($domain === filter_var($domain, FILTER_VALIDATE_URL) || $domain === filter_var($domain, FILTER_VALIDATE_IP)
{
// run your existing code
}
else
{
// invalid input
}
答案 1 :(得分:0)
我确信以下内容应该可以正常运作:
if(!preg_match('/^[a-z0-9]+\.[a-z0-9]+$/i', $domain) &&
!preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i', $domain))
die('Not a valid domain!');