最近,我使用Hostgator作为我的php web服务器。
但我可以访问并下载网址中的公共html文件。这是正常的吗?
我可以通过php或其他任何方式控制网址访问权限吗?
只有“abc.com”这个直接可以访问
“abc.com/files”无法直接访问
感谢您的帮助
答案 0 :(得分:1)
检查变量$ url是否是有效的URL:
<?php
$url = "http://www.hackingworldtips.wordpress.com";
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
定义和用法 FILTER_VALIDATE_URL过滤器验证URL。
可能的标志:
FILTER_FLAG_SCHEME_REQUIRED - 网址必须符合RFC标准(如http://example) FILTER_FLAG_HOST_REQUIRED - 网址必须包含主机名(如http://www.example.com) FILTER_FLAG_PATH_REQUIRED - URL必须在域名后面有一个路径(例如www.example.com/example1/) FILTER_FLAG_QUERY_REQUIRED - URL必须有一个查询字符串(例如“example.php?name = Peter&amp; age = 37”) 以下示例清理并验证网址:
示例1 首先从$ url变量中删除所有非法字符,然后检查它是否是有效的URL:
<?php
$url = "http://www.hackingworldtips.wordpress.com";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
例2 在这里,URL必须具有有效的查询字符串:
<?php
$url = "http://www.hackingworldtips.wordpress.com";
if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
答案 1 :(得分:0)
在文件夹中添加带有此代码的.htaccess文件(您要防止公共访问的任何文件夹)
Order Deny,Allow
Deny from all