保护服务器上的PHP脚本以让任何人运行它的最佳(最简单但有效)方法是什么?获取我的脚本的URL地址的任何人都可以在我的服务器上运行该脚本,这可能导致不需要的(对我来说)操作。我怎么解决这个问题?如果我要在public class DisplayGraphic extends JPanel {
private int xCount = 0;
public void paintComponent(Graphics g) {
super.paintComponent(g);
//...
//same as paint in above
}
}
}
这样的脚本条件的基础上添加,那么读取代码并获得if($pass == 'mySuperSecretPass') { ... }
变量的正确值是没有问题的。
请原谅我的英语。非常感谢你。
答案 0 :(得分:3)
您是否考虑过使用Apache .htaccess? (请注意,您需要启用AllowOverride。)
可以阻止访问某些网址和密码保护。
AuthType Basic AuthName "Authentication Required" AuthUserFile "/etc/htpasswd/.htpasswd" Require valid-user
要创建.htpasswd文件,请使用此工具:http://www.htaccesstools.com/htpasswd-generator/
另外,你可以使用blok IP,这个工具: http://www.htaccesstools.com/block-ips/
答案 1 :(得分:1)
如果服务器应该是唯一一个使用内部方法访问脚本的服务器,则可以使用.htaccess规则为其他所有人隐藏/阻止该文件。
RedirectMatch 404 "/(\/full\/path\/to\/restrictedFile\.php|\/path\/to\/restrictedFolder)"
这会将访问/full/path/to/restrictedFile.php和/ path / to / restrictedFolder的所有人重定向到您的错误404页面。
脚本根本没有打开。
对于IIS:
This是一个描述我已经回答但是对于IIS而不是apache的页面。
一般的想法是:
<configuration>
<location path="glimpse.axd">
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="403" />
<error statusCode="403" path="/Errors/NotFound" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</location>
</configuration>
我不习惯使用IIS配置和web.config文件,因此我建议您阅读我链接的页面,您可能知道如何实现它。
答案 2 :(得分:0)
这就是我所做的,一个非常简单的自动登录功能登录。首先我有静态登录,在这种情况下usr = username。我也可以添加密码或只接受某个IP地址。我把它保存在一个名为login.php的文件中,并将其包含在必要的脚本中。
如果设置了登录名,请设置一个包含用户名的cookie,有效期为1年。无需每次都从这台电脑登录!
如果存在cookie,请将session设置为logged_in = true
session_start();
if ( isset( $_REQUEST['usr'] ) ) {
if ( $_REQUEST['usr'] == 'username' ) {
setcookie( 'usr', 'username', time() + 3600 * 24 * 730, '/', $_SERVER['SERVER_NAME'] );
} else {
setcookie( 'usr', '', time() - 3600 );
unset( $_COOKIE['usr'] );
}
}
if ( isset( $_COOKIE['usr'] ) && $_COOKIE['usr'] == 'username' ) {
setcookie( 'usr', 'username', time() + 3600 * 24 * 730 );
$_SESSION['logged_in'] = true;
} else {
$_SESSION['logged_in'] = false;
}
现在,在我的代码中,我测试了logged_in
if ( $_SESSION['logged_in'] ) {
// Do some stuff
} else {
header( 'Location: http://www.google.com' );
exit;
}
如果用户未登录,请将其重定向到其他页面!我不使用任何形式或东西。我第一次访问该页面的时候是这样的:http://www.myserver.com/?usr=username
这不是最大的安全性,而是一种不断窥探的简单方法。
如果您需要非常安全的登录,请忘记Cookie并自动登录并转到SSL加密服务器(https://)。