Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 安全URL功能?_Php_Security_Url_Session_Query String - Fatal编程技术网

Php 安全URL功能?

Php 安全URL功能?,php,security,url,session,query-string,Php,Security,Url,Session,Query String,我公司的网站刚刚被黑客入侵,我现在正在格外小心地恢复网站。该公司希望尽快启动该网站,因此我没有足够的时间对该软件的漏洞进行重新编码,因此我将在执行以下操作后对其进行恢复: 从网站禁用所有输入表单。(基本上,对于所有表示action=someform.php的表单,我只是将服务器上的someform.php重命名为someform1.php,这样实际上就不会有任何内容进入数据库。稍后我将处理PDO和SQL注入保护) 没有剩下表单,就没有要处理的$\u POST输入,但仍然有$\u GET。对于每个

我公司的网站刚刚被黑客入侵,我现在正在格外小心地恢复网站。该公司希望尽快启动该网站,因此我没有足够的时间对该软件的漏洞进行重新编码,因此我将在执行以下操作后对其进行恢复:

  • 从网站禁用所有输入表单。(基本上,对于所有表示
    action=someform.php
    的表单,我只是将服务器上的
    someform.php
    重命名为
    someform1.php
    ,这样实际上就不会有任何内容进入数据库。稍后我将处理PDO和SQL注入保护)
  • 没有剩下表单,就没有要处理的
    $\u POST
    输入,但仍然有
    $\u GET
    。对于每个接收查询字符串的页面,我都对每个
    $\u GET['']
    变量进行了检查,并确保只在它是数字的时候处理它。例如,
    if(isset($\u-GET['page\u-id'])和&is-numeric($\u-GET['page\u-id']){/*做点什么*/}
    。黑客似乎已经突破了使用SQL注入
  • 通过网站的另一部分(目前只有公司员工可以访问),我将其设置为密码保护文件夹。我知道黑客仍然可以使用匿名FTP或使用其他方式,但我希望至少在开始时避免SQL注入,所以我认为密码保护的文件夹会有所帮助。这是在现有安全登录的基础上进行的
  • 我现在很担心URL。我不确定它是否安全,它是一个双语网站,这就是它的发展方向(这部分代码是由以前的开发人员编写的,我不太理解):

  • 通过URL是否存在一些漏洞?或者到目前为止,我的安全性是否合理?

    有一个提示/注意:关于您提到的SQL注入,请确保您始终在任何地方使用

    关于更改语言(在会话中)。代码似乎很安全,因为没有人可以注入或更改某些内容

    在该行下: 然而,我发现您的URL构造中存在一个问题。它使用base64_编码方法使URL“安全”。然而,任何人都可以解码它(因为它只是一个base64编码)。从长期来看,您可以尝试使用一些符号加密,并使用存储在用户会话中的通用密钥。这样,没有人会使用为其他人生成的URL


    无论如何,在这种情况下,改变语言是无害的。上述提议是针对真正需要保障的资源/业务。我的意思是只有授权的人才能访问它(而不仅仅是盗取的URL)。当然,还有其他方法可以保护您的站点。这只是一个实用的建议。

    你怎么知道是PHP脚本中的漏洞被利用了?老实说,一开始我认为黑客通过我们的图像上传程序上传了一个恶意文件(因为它没有检查MIME类型),但在那之后,我确定PHP代码中存在漏洞,因为数据库中有行产品的ID,比如
    cd/etc/pwd
    ,数据库中还有其他各种疯狂的东西。我认为这里没有什么可以被黑客攻击的,您应该做的是检查以下内容:1)修复所有查询以防止SQLinjections 2)如果您有上载表单,请将其设置得更严格,检查文件大小,如果是图像,您甚至可以“重新转换”它。3) 确保您拥有强大的密码4)我希望您只能通过本地主机访问mysql DB 5)确保您没有感染键盘记录器之类的东西6)确保管理面板不容易被破坏7)如果您在共享服务器上,有一种可能性是,另一个网站被黑客入侵,黑客从另一个虚拟服务器进入你的虚拟服务器。如果没有足够的安全性,这里你有一个大问题:报告给你的托管提供商或更改托管提供商。8) 如果您使用的是VPS/专用服务器,请确保它是最新的,并尽可能在服务器上安装安全软件。9)最终尝试从黑客的角度查看它,您将如何破解它?您甚至可以尝试一些黑客/测试工具,如和。注意:确保你有权这样做。我知道,但我的公司很忙。。。。开始监视网络(apache日志)。入侵者也可能在里面。您还可以看到具体的IP地址,并将其禁用。您还可以仅为知名网络(仅为您的办公室、国家等)启用站点
    if($_SERVER['SERVER_NAME'] == 'localhost' || $_SERVER['SERVER_NAME'] == 'salman'){
        $url =zeej_dir.curPageName().'?'.$_SERVER["QUERY_STRING"];
    } else {
        $url ='/'.curPageName().'?'.$_SERVER["QUERY_STRING"];
    }
    $change_url = "http://".$_SERVER['SERVER_NAME'].$url;
    
    
    if($_SESSION['ln'] == 'en'){ 
            echo '<img src="'.getSiteUrl().'images/arabicicon.jpg" alt="Arabic" width="15" height="15" />';
            echo '<a href="'.getSiteUrl().'change_session.php?page_url='.base64_encode( $change_url ).'" class="top_frametext">Arabic</a>';
        } else {
            echo '<img src="'.getSiteUrl().'images/engicon.jpg" alt="English" width="15" height="15" />';
            echo '<a href="'.getSiteUrl().'change_session.php?page_url='.base64_encode( $change_url ).'" class="top_frametext">English</a>';
        }
    
    @session_start();
    $page_url = isset($_REQUEST['page_url'])?$_REQUEST['page_url']:'';
    
    if($_SESSION['ln'] == 'en'){
        $_SESSION['ln'] ='ar';
    } else {
        $_SESSION['ln'] ='en';
    }
    
    header("location: ".base64_decode($page_url));exit;