我已经创建了一个网站,我想允许特定的IP地址访问这个网站
经过一番研究,我发现IP地址可能每天都在变化。有办法获得新地址吗?
IP地址会根据查看您网站的用户的ISP而更改。一些用户将被分配静态IP,而许多家庭用户可能被分配动态IP,动态IP可能会根据不同情况而变化。
有几个不同的选项来处理用户身份验证,具有不同的可用性级别:
-
使用登录表单并创建用户。您必须创建一个数据库来存储加密的密码和其他用户数据。
-
使用IP地址白名单登录。您可以使用PHP中的
$_SERVER['REMOTE_ADDR']
变量来检测服务器请求的来源。请注意,如果用户正在通过代理,则会返回代理IP,而不是用户。您可以要求白名单IP阵列之外的任何人登录。 -
一个用于设置数据库的小示例脚本:
$ msyql -u root -pYourPassword > CREATE DATABASE mysite; > CREATE TABLE users (id TINYINT NOT NULL AUTO_INCREMENT, name VARCHAR(30), password VARCHAR(60), email VARCHAR(30), PRIMARY KEY (id));
这就是创建一个非常简单的数据库的方法。为了安全起见,在通过MySQL PASSWORD()函数传递密码之前,您应该始终对密码进行salt处理。
-
如果您不习惯使用数据库,可以使用htaccess管理用户登录凭据。它很简单,没有提供编程登录所带来的额外附加好处或可管理性。
#just a basic login AuthType Basic AuthName "Login Required" #the absolute path to your htpasswd. you can use relative, just be conscious if you move either file AuthUserFile /path/to/.htpasswd #if you don't have this, your already limited security is blown Require valid-user
-
根据htaccess,无论.htpasswd在哪里,都会有一个文件
.htpasswd
,每个用户有一行,看起来像:john:$apr1$j08c8l7h$ck52z9GqO0VTgKY5OMerV0
-
无论何时使用.htaccess方法,都应该拥有并chmod 600这些文件,以确保只有Apache用户才能读取它们:
chown www-data:www-data .htaccess && chmod 600 .htaccess chown www-data:www-data /path/to/.htpasswd && chmod 600 .htpasswd
我强烈建议使用标准登录系统,将您的信息存储在MySQL(或postgres、oracle等)数据库中。您自己也注意到,IP地址确实会发生变化,仅使用IP地址列表频繁更新和管理对网站的访问既不高效也不安全。