0

所以我花了很多时间试图找出一种方法来清理来自站点的输入以防止 URL 注入,并且只返回 domain.tld(google.com 等)

基本上我有一个我创建的网站,人们可以使用它来获取网站的 IP 地址(getwebsiteip.com),我想确保我防止任何恶意注入,同时只返回 google.com,无论他们是否输入http://google.comhttps://google.com udp://google.com 等。我确实想保持子域的完整性,从技术上讲,www 是一个子域,而 www.google.com 的 A 记录可能与 google.com 不同。

我只是从用户输入中获取 URL,检查 DNS 记录并显示它。

所以我尝试了几种不同的方法并在线阅读,但想确保我以正确的方式做这件事。

阅读本网站: http ://www.phpro.org/tutorials/Filtering-Data-with-PHP.html

过滤确实有效,但您必须输入 http 才能验证,否则无效。

我发现了这个: http ://snipplr.com/view.php?codeview&id=12616

这在剥离域本身方面做得很好,但从我发现的所有内容来看,似乎需要大量代码才能完成看起来应该相当简单的事情。

在一个完美的世界里,我希望用户只输入 subdomain.domain.com 或 domain.com,但如果他们使用 http:// 或 https:// 我仍然想去掉它并输出 IP。

我还想防止任何人试图注入恶意代码。

有人可以指出我正确的方向或提供帮助吗?我想我现在有一个秃头,因为我挠头太多了:P

4

1 回答 1

2

您需要parse_url 函数

$url = 'https://www.example.com/path?googleguy=googley&foo[]=bar';
print parse_url($url, PHP_URL_HOST);
// prints www.example.com
于 2013-05-24T17:23:25.220 回答