小编ams*_*raf的帖子

你知道一个简单的PHP脚本在ip检查后抛出403吗?

我有一个脚本,支付处理器附带付款确认.为了使页面安全,因为它可以访问订单信息和其他用户相关的东西,我不得不通过ip(/ 24)来限制访问,如下所示:

$ipAllowed = array(
'192.192.192',
'172.172.172'
);
$ipAllowed = str_replace(".", "\.", implode("|", $ipAllowed));

if(!preg_match("/^($ipAllowed)\.[0-9]{1,3}$/", $_SERVER['REMOTE_ADDR'])){
     header('HTTP/1.0 403 Forbidden');
     die('You are not allowed to access this file.');
}
Run Code Online (Sandbox Code Playgroud)

*ip就是一个例子

在我用之前:

if(!in_array(@$_SERVER['REMOTE_ADDR'], array('ips here'))); //only works with full ip
Run Code Online (Sandbox Code Playgroud)

!in_array比我现在使用的那个更整洁,但我需要一些适用于/ 24 ips的东西,甚至两者都适用!

你知道更好/更快,可靠和更整洁的东西吗?

@ rap-2-h如你所说,这是适用于全ip,/ 24甚至/ 16的整洁版本

$ipAllowed = array( '192.168.1.153' '172.172.172'); 
$allowed = false; 

foreach($ipAllowed as $ip): 
    if(strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) $allowed = true; 
endforeach; 

if (!$allowed) { 
    header('HTTP/1.0 403 Forbidden'); 
    die('You are not allowed to access this file.'); 
}
Run Code Online (Sandbox Code Playgroud)

php arrays security http-status-code-403

5
推荐指数
1
解决办法
8845
查看次数

标签 统计

arrays ×1

http-status-code-403 ×1

php ×1

security ×1