【问题标题】:Avoid to access page from external network?避免从外部网络访问页面?
【发布时间】:2014-03-27 12:43:15
【问题描述】:

我创建了一些 php 页面,这些页面显示了一些 excel 文件中的数据。

我使用办公室的内部 IP 地址访问这些页面,所有 PC 都连接在同一网络上。我使用外部 IP 地址从我家访问这些页面。

所以我的问题是,我如何输入密码或保护我的 php 页面从外部网络访问?

即当我从家里访问 php 网页时,它应该要求输入密码 - 我该如何完成?

例如:hello.php

<?php
    echo"hello world";
?>

我想给这个 php 文件输入密码,或者如果我使用外部 IP 地址访问它,那么它应该要求输入密码。

【问题讨论】:

  • htaccess 是你的朋友
  • 实际上我这样做了...但它是用于内部 IP 地址...我不想将 pwd 放入内部网络但想放入外部 n\w

标签: php


【解决方案1】:

只需定义您办公室中可用的 IP,然后阻止其他人。

$white_list = array('8.8.8.8', '1.1.1.1');

if (! in_array($_SERVER['REMOTE_ADDR'], $white_list))
{
    header('Location: mypasswordpage.php');
}

【讨论】:

  • 如何实现呢?以及我是否要在那里定义外部 IP 地址?意味着在数组中?
  • 使用 htaccess 将所有请求发送到 index.php 文件。或者,创建一个“check_access.php”文件,并将其包含在您使用的每个文件中。
【解决方案2】:

如果您想在 PHP 中执行此操作,您可以使用:

if($_SERVER['REMOTE_ADDR'] != [YOUR OFFICE IP HERE]) {
    // die or throw an exception
}

还有很多安全组件。查看主要框架:

Symfony

Zend 2

您还可以配置 apache 以根据 IP 击退请求。看到这个SO answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2019-05-26
    • 2020-01-31
    相关资源
    最近更新 更多