精华内容
下载资源
问答
  • 电商网站安全问题

    千次阅读 2018-06-02 10:44:48
    电商网站安全常见问题。。 电子商务简单的说就是利用Internet进行的交易活动,电子商务:"电子"+"商务",从电子商务的定义可以了解电子商务的安全也就相应的分为两个方面的安全:一方面是"...
    电商网站安全常见问题。。       
           电子商务简单的说就是利用Internet进行的交易活动,电子商务:"电子"+"商务",从电子商务的定义可以了解电子商务的安全也就相应的分为两个方面的安全:一方面是"电子"方面的安全,就是电子商务的开展必须利用Internet来进行,而Internet本身也属于
    计算机网络
    ,所以电子商务的第一个方面的安全就是
    计算机网络
    的安全,它包括计算机网络硬件的安全与计算机网络软件的安全,计算机网络存在着很多安全威胁,也就给电子商务带来了安全威胁;另一方面是"商务"方面的安全,是把传统的商务活动在Internet上开展时,由干Internet存着很多安全隐患给电子商务带来了安全威胁,简称为"商务交易安全威胁"。这两个方面的安全威胁也就给电子商务带来了很多安全问题:
    (一)计算机网络安全威胁
      电子商务包含"三流":信息流、资金流、物流,"三流"中以信息流为核心为最重要,电子商务正是通过信息流为带动资金流、物流的完成。电子商务跟传统商务的最重要的区别就是以计算机网络来传递信息,促进信息流的完成。计算机网络的安全必将影响电子商务中的"信息流"的传递,势必影响电子商务的开展。计算机网络存在以下安全威胁:
      1、黑客攻击
      黑客攻击是指黑客非法进入网络,非法使用网络资源。随着互联网的发展,黑客攻击也是经常发生,防不胜防,黑客利用网上的任何漏洞和缺陷修改网页、非法进入主机、窃取信息等进行相关危害活动。2003年,仅美国国防部的"五角大楼"就受到了了230万次对其网络的尝试性攻击。从这里可以看出,目前黑客攻击已成为了电子商务中计算机网络的重要安全威胁。
      2、计算机病毒的攻击
      病毒是能够破坏计算机系统正常进行,具有传染性的一段程序。随着互联网的发展,病毒利用互联网,使得病毒的传播速度大大加快,它侵入网络,破坏资源,成为了电子商务中计算机网络的又一重要安全威胁。
      3、拒绝服务攻击
      拒绝服务攻击(DoS)是一种破坏性的攻击,它是一个用户采用某种手段故意占用大量的网络资源,使系统没有剩余资源为其他用户提供服务的攻击。目前具有代表性的拒绝服务攻击手段包括SYNflood、ICMPflood、UDPflood等。随着互联网的发展,拒绝服务攻击成为了网络安全中的重要威胁。
      (二)商务交易安全威胁
      把传统的商务活动在Internet上进行,由于Internet本身的特点,存在着很多安全威胁,给电子商务带来了安全问题。Internet的产生源于计算机资源共享的需求,具有很好的开放性,但正是由子它的开放性,使它产生了更严重的安全问题。Internet存在以下安全隐患:
      1、开放性
      开放性和资源共享是Internet最大的特点,但它的问题却不容忽视的。正是这种开放性给电子商务带来了安全威胁。
      2、缺乏安全机制的传输协议
      TCP/IP协议是建立在可信的环境之下,缺乏相应的安全机制,这种基于地址的协议本身就会泄露口令,根本没有考虑安全问题;TCP/IP协议是完全公开的,其远程访问的功能使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等这些性质使网络更加不安全。
      3、软件系统的漏洞
      随着软件系统规模的不断增大,系统中的安全漏洞或"后门"也不可避免的存在。如cookie程序、JAVA应用程序、IE浏览器等这些软件与程序都有可能给我们开展电子商务带来安全威胁。
      4、信息电子化
      电子化信息的固有弱点就是缺乏可信度,电子信息是否正确完整是很难由信息本身鉴别的,而且在Internet传递电子信息,存在着难以确认信息的发出者以及信息是否被正确无误地传递给接收方的问题。
      (三)计算机网络安全威胁与商务交易安全威胁给电子商务带来的安全问题
      1、信息泄露
      在电子商务中表现为商业机密的泄露,以上计算机网络安全威胁与Internet的安全隐患可能使得电子商务中的信息泄漏,主要包括两个方面:(1)交易一方进行交易的内容被第三方窃取。(2)交易一方提供给另一方使用的文件第三方非法使用。
      2、篡改
      正是由于以上计算机网络安全威胁与Internet的安全隐患,电子的交易信息在网络上传输的过程中,可能被他人非法地修改、删除或重放(指只能使用一次的信息被多次使用),这样就使信息失去了真实性和完整性。
      3、身份识别
      正是由于电子商务交易中交易两方通过网络来完成交易,双方互不见面、互不认识,计算机网络的安全威胁与Internet的安全隐患,也可能使得电子商务交易中出现身交易身份伪造的问题。
      4、信息破坏
      计算机网络本身容易遭到一些恶意程序的破坏,如计算机病毒、特洛伊木马程序、逻辑炸弹等,导致电子商务中的信息在传递过程被破坏。
      5、破坏信息的有效性
      电子商务中的交易过程中是以电子化的信息代替纸面信息,这些信息我们也必须保证它的时间的有效与本身信息的有效,必须能确认该信息确是由交易一方签发的,计算机网络安全威胁与Internet的安全隐患,使得我们很难保证电子商务中的信息有效性。
      6、泄露个人隐私
      隐私权是参与电子商务的个人非常关心的一个问题。参与到电子商务中的个人就必须提供个人信息,计算机网络安全威胁与Internet的安全隐患有可能导致个人信息泄露,破坏到个人隐私。

    展开全文
  • 网站安全测试报告模板

    千次阅读 2019-05-15 14:39:31
    XXXX网站安全测试报告 摘要 经xxxxx网站负责人的授权,xxxxx有限公司安全测试小组对xxxxx网站进行了安全测试。测试结果如下: 严重问题:7个 中等问题:8个 轻度问题:6个 一.安全风险分布 详细内容...

                        XXXX网站安全测试报告

     


    摘要

    经xxxxx网站负责人的授权,xxxxx有限公司安全测试小组对xxxxx网站进行了安全测试。测试结果如下:

    • 严重问题:7个
    • 中等问题:8个
    • 轻度问题:6个

    一.安全风险分布

    详细内容如下表:

    1 发现问题详细内容

    问题等级

    种类

    数量

    名称

    严重问题

    7

    1个

    盲注

    1个

    Apache Tomcat示例目录漏洞

    1个

    跨站脚本攻击

    1个

    应用程序错误消息

    1个

    Spring框架中的目录遍历

    1个

    JavaScript库薄弱

    1个

    Microsoft IIS波浪号目录枚举

    中等问题

    8

    1个

    页面的错误信息

    1个

    缓慢的HTTP拒绝服务攻击

    1个

    Apache Jserv协议服务

    1个

    HTML表单没有CSRF保护

    1个

    VIEWSTATE参数未加密

    1个

    Snoop Servlet信息披露

    1个

    URL重定向

    1个

    用户凭据以明文发送

    轻度问题

    6

    1个

    “点击劫持”:X-Frame-Options头失踪

    1个

    登录页面密码猜测攻击

    1个

    OPTIONS方法启用

    1个

    可能相对路径覆盖

    1个

    URL中的会话令牌

    1个

    坏链

     

    xxxx有限公司认为被测系统当前安全状态是:远程安全系统

    服务概述

    本次渗透测试工作是由xxxxxx有限公司的渗透测试小组独立完成的。

    xxxxxx公司渗透测试小组在20xx年3月14日至20xx年xx月xx日对xxxx网站进行了远程渗透测试工作。在此期间,xxxxxxxx公司渗透测试小组利用部分前沿的攻击技术;使用成熟的黑客攻击手段;集合软件测试技术(标准)对指定网络、系统做入侵攻击测试,希望由此发现网站、应用系统中存在的安全漏洞和风险点。

    1. 测试流程

    xxxxxxxx公司渗透测试服务流程定义为如下阶段:

    信息收集:此阶段中,xxxxxxxxxx公司测试人员进行必要的信息收集,如 IP 地址、DNS 记录、软件版本信息、IP 段、Google中的公开信息等。

    渗透测试:此阶段中,xxxxxxxxxxxxxx公司测试人员根据第一阶段获得的信息对网络、系统进行渗透测试。此阶段如果成功的话,可能获得普通权限。

    缺陷利用:此阶段中,xxxxxxxxxxxxxxxxxxxxx公司测试人员尝试由普通权限提升为管理员权限,获得对系统的完全控制权。在时间许可的情况下,必要时从第一阶段重新进行。

    成果收集:此阶段中,xxxxxxxxxxxxxxxxxxx公司测试人员对前期收集的各类弱点、漏洞等问题进行分类整理,集中展示。

    威胁分析:此阶段中,xxxxxxxxxxxxxxxxxxx公司测试人员对发现的上述问题进行威胁分类和分析其影响。

    输出报告:此阶段中,xxxxxxxxxxxxxxxxxxx公司测试人员根据测试和分析的结果编写直观的渗透测试服务报告

    二.渗透测试流程

    风险管理及规避

    为保障客户系统在渗透测试过程中稳定、安全的运转,我们将提供以下多种方式来进行风险规避。

    对象的选择

    为更大程度的避免风险的产生,渗透测试还可选择对备份系统进行测试。因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。

    时间的控制

    从时间安排上,测试人员将将尽量避免在数据高峰时进行测试,以此来减小测试工作对被测试系统带来的压力。

    技术手段

    xxx公司的渗透测试人员都具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。

    监控措施

    针对每一系统进行测试前,测试人员都会告知被测试系统管理员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。

    工具的使用

    在使用工具测试的过程中,测试人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:远程溢出攻击类插件、拒绝服务攻击类插件等等。

    1. 测试收益

    通过实施渗透测试服务,可对贵方的信息化系统起到如下推进作用:

    明确安全隐患点

    渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。

    提高安全意识

    如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。

    提高安全技能

    在测试人员与用户的交互过程中,可提升用户的技能。另外,通过专业的渗透测试报告,也能为用户提供当前流行安全问题的参考。

    测试目标说明

    1.测试对象

    测试对象名称

    相关域名、对应的URL

    xx网站

    证书版登录

    http://www.xx.com.cn

    IP地址:211.149.xx.xx

    2.测试账号

    测试账号名称

    相关详细信息

    xxxx系统账号

    账号所有者:xxxxxx网站

    系统登录:xx密码:xxxxxx

     

    3.时间

    测试工作的时间段

    起始时间

    2019-xx-xx

    结束时间

    2019-xx-xx

    本份测试报告分析的各种安全风险,仅限定于在上述时间段内测试反馈信息的整理,不包括非上述时间段内的因系统调整、维护更新后出现的其他变化情况。

    参与测试人员

    1. 测试环境

    参测人员名单

    姓名

    xx

    所属部门

    软件测试部

    姓名

    xx

    所属部门

    软件研发部

    本次渗透测试过程中,南京贞观互联网科技有限公司测试小组使用过多个互联网IP地址开展的分析工作,在此通知南京长江第三大桥网站相关人员在对受测试的目标站点服务器、相应的网络入侵检测系统进行安全监控和日志分析时,排除以下IP地址产生的任何违规信息,以保证分析结果的准确有效。

    三、工具及相关资源

    1.测试工具:NetCat

    工具名称

    NetCat

    工具用途

    端口连接,数据提交

    相关信息

    http://joncraton.org/files/nc111nt.zip

    2 测试工具:Nmap

    工具名称

    Nmap

    工具用途

    端口扫描,服务识别,操作系统指纹识别

    相关信息

    http://nmap.org/

    3 测试工具:httprint

     

    工具名称

    Httprint

    工具用途

    通过远程http指纹判断http服务类型

    相关信息

    http://www.net-square.com/httprint/

    4 测试工具:Tamper IE

     

    工具名称

    Tamper IE

    工具用途

    HTTP数据包修改、转发工具(Firefox插件)

    相关信息

    http://www.bayden.com/TamperIE/

    5 测试工具:安全检测工具集

     

    工具名称

    XX科技整理的安全检测工具集

    工具用途

    跨站及SQL注入测试、远程溢出测试、暴力破解测试、嗅探分析

    相关信息

    www.xxS.com

     

    在具体的分析过程中,xxxxxxxx公司测试小组在微软的Windows平台上(涵盖2003/Vista),使用了IE(涵盖6.0/7.0/8.0)和Firefox浏览器对指定的测试对象进行的分析、校验、测试。因此,漏洞分析检测到的部分安全问题可能与特定的操作系统、软件版本有具体关系,提醒后期实施漏洞修复工作的人员特别注意其中的差异。

    • 测试过程详述
      1. 目标信息探测
        1. 域名信息

    渗透测试人员首先通过nslookup对主机的IP地址、NS记录等信息的查询,对站点进行基本的信息探测:

    Default Server:  xd-cache-1.net

    Address:  211.149.xx.xx:xx

     

    >xx.com.cn

     

    //查询ns记录

    > set type=ns

    >xx.com.cn

    Server:  gjjline.bta.net.cn

    Address:  211.149.xx.xx:xx

     

    Non-authoritative answer:

    xx.com      nameserver = xx.com

    > server hxns1.hua-xiabank.com

    Default Server:  xx.com.cn

    Address:  211.149.xx.xx:xx

     

    //测试区域传输

    > set type=axfr

    > ls -d xx.com.cn

    ls: connect: No error

    *** Can't list domain xx.com.cn: Unspecified error

    The DNS server refused to transfer the zone xx.com to your computer. If this

    is incorrect, check the zone transfer security settings for xx.com on the DNS

    server at IP address 211.149.xx.xx:xx

     

    //查询站点mx记录

    > set type=mx

    > nj3q.com.cn

    Server:  xx.com.cn

    Address:  211.149.xx.xx:xx

     

    xx.com      MX preference = 5, mail exchanger = smtp.xx.com.cn

    xx.com      nameserver = xx.com.cn

     

    //检查版本信息

    > set type=txt

    > set class=chaos

    > version.bind

    Server:  xx.com.cn

    Address:  211.149.xx.xx:xx

    version.bind    nameserver = version.bind

     

     

    对WWW目标进行Whois的查询,下面是获取到的Whois信息如下:

    xx.com.cn= [211.149.xx.xx:xx]

    1. Google Hacking

    搜索错误的文件后缀

    在此过程中,测试人员会对站点进行如下内容的搜索:

    搜索内容

    说明

    site:xx.com.cn inurl:jsp.bak

    site:xx.com.cn inurl:jsp.bak

    搜索站点中是否存在后缀为jsp.bak的文件,即,某些jsp的备份文件。

    site:xx.com.cn filetype:sql

    site:xx.com.cn filetype:sql

    搜索站点中是否存在SQL脚本文件

    site: xx.com.cn filetype:txt

    site: xx.com.cn filetype:txt

    查找站点中是否有包含敏感信息的txt文件

    site: xx.com.cn filetype:conf

    site: xx.com.cn filetype:conf

    查找站点中是否有包含敏感信息的conf文件

     

    通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

    查找第三方组件或程序

    在此过程中,测试人员会对站点进行如下内容的搜索:

    搜索内容

    说明

    site:xx.com.cn  inurl:/fckeditor/

    site:xx.com.cn  inurl:/fckeditor/

    搜索站点是否使用了fckeditor

    site:xx.com.cn inurl:jsp?id inurl:ewebeditor

    site:xx.com.cn inurl:jsp?id inurl:ewebeditor

    搜索站点是否使用了 eWebEditor

     

    通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

    搜索错误的配置

    在此过程中,测试人员会对站点进行如下内容的搜索:

    搜索内容

    说明

    site:xx.com.cn intitle:”index of /”

    site:xx.com.cn intitle:”index of /”

    搜索站点是否使用了列目录功能

    site:xx.com.cn intitle:"Apache Tomcat" intitle:"Error Report"

    搜索站点是否存在TOMCAT错误信息,通过错误信息可判断TOMCAT版本

    site:xx.com.cn  inurl:"examples"

    site:xx.com.cn  inurl:"examples"

    搜索站点中是否存在测试代码

     

    通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

    1. 对系统的测试
      1. 端口扫描

    通过使用Nmap端口扫描工具对主机在Internet上的端口开放情况进行检查:

    1Nmap扫描结果

    通过Nmap扫描报告,确认主机开放两个端口:

    1. TCP 21(用于FTP服务)
    2. TCP 443(用于WEB服务)

    通过使用nc(NetCat)对主机的TCP 21进行端口连接性测试,发现在连接成功后较长时间内端口无反应:

    2使用nc连接TCP 21

    再次通过使用ftp客户端对目标系统发起FTP连接请求,得到信息“Connection closed by remote host.”:

    3 使用ftp客户端对目标主机进行验证

    由此可确认TCP 21虽开放,但应在网络层有相关的ACL限制,因此无法从Internet对其FTP服务发起连接请求。

     

    服务信息探测

    通过端口扫描判断,远程目标主机仅有TCP 443端口(WEB应用服务)可用,因此,后继的渗透测试工作主要针对WEB应用本身及运行于WEB应用上的代码展开。

    首先使用httprint对远程主机的WEB应用版本进行判

    1 httprint判断远程WEB应用版本

    根据httprint输出无法判断远程主机的WEB应用。

    通过nc手工提交HTTP HEAD请求,依然无法获取到目标WEB应用版本信息。

    2 使用nc提交HTTP HEAD请求

    通过nc手工提交HTTP OPTIONS请求,依然无法获取到目标WEB应用版本信息。

    3 使用nc提交HTTP OPTIONS请求

    对应用的测试

    测试人员根据WASC威胁分类,对应用程序的渗透测试从五个类型的安全方面进行测试,这五个威胁类型包括:认证和授权、命令执行、逻辑攻击、服务端攻击、信息泄露。

     

    认证和授权类

    命令执行类

    暴力攻击

    LDAP注入

    认证不充分

    SSI注入

    会话定置

    SQL注入

    会话期限不充分

    Xpath注入

    凭证/会话预测

    操作系统命令

    授权不充分

    格式字符串攻击

    逻辑攻击类

    缓冲区溢出

    功能滥用

    信息泄漏类

    拒绝服务

    可预测资源定位

    客户端攻击类

    路径遍历

    跨站点脚本编制

    目录索引

    内容电子欺骗

    信息泄露

    1 WASC威胁分类

    测试人员根据xxx系统的特点,从实际出发采用手工测试的方法,对五大类威胁中的部分内容进行测试。

    1. 命令执行类

    在命令执行类的测试中,测试人员主要测试了SQL注入攻击。为了避免使用模糊测试给账户及xxxx网站带来不可预料的影响,测试人员采用手工测试的方法。

    测试人员对xxxxx网站中的输入参数进行了部分测试,下面以测试登录用户名选项为例进行说明。

    测试人员发现当前xxxx网站系统大部分输入都只是网页端验证而非网页端服务端双向验证。(威胁点)

    1. 信息泄露类

    测试人员在对网站其他周边信息进行检查时发现,xx.com.cn存在明显的web server默认页面,该处泄露了当前服务器web信息。

     

    发现问题与建议

    1/其他建议

    针对WEB平台的渗透测试及定期的评估扫描等方式,均以暴露问题为目标,属于被动的安全手段,而这些方式也大大的增加开发和维护的成本,因此建议xxxx网站针对如WEB程序这类个性化产品开发前就应做好安全的相关工作,建议xxxx网站对定制开发的产品从以下几个方面进行相关的考察和关注:

    1. 制定以功能和安全兼顾的产品开发需求
    2. 将安全作为产品开发项目中的重要参考指标
    3. 产品开发过程中的人员安全意识和技能培训
    4. 完善的安全开发手册及通用的安全的代码库
    5. 在开发每阶段完成后的定期代码审计和扫描
    6. 产品整体上线前的审计工作和远程评估工作
    • 测试结论

    经过本次远程渗透测试,我们对此远程系统的安全评价是 远程安全系统。

     

    安全等级

    资源内容描述

    远程不安全系统

    符合任何一个条件

    存在一个或一个以上严重的安全问题,可直接导致系统受到破坏;

    与其他非安全系统连接,同时存在相互信任关系(或帐号互通)的主机;

    发现已经被人入侵且留下远程后门的主机;

    存在3个以上中等安全问题的主机;

    与其他非安全系统在一个共享网络中,同时远程维护明文传输口令;

    完全不能抵抗小规模的拒绝服务攻击

    远程一般安全系统

    符合任何一个条件

    存在一个或一个以上中等安全问题的主机;

    开放过多服务,同时可能被利用来进行拒绝服务的主机;

    与其他非安全系统直接连接,但暂时不存在直接信任(或帐号互通)关系;

    远程维护通过明文的方式传递信息;

    存在三个以上轻度安全问题的主机;

    只能抵御最低级的拒绝服务攻击;

    远程安全系统

    符合全部条件

    最多存在1-2个轻度安全问题;

    远程维护方式安全;

    与不安全或一般安全系统相对独立;

    能抵挡一定规模的拒绝服务攻击。

    六 安全等级评定

    1. 威胁程度分级

    威胁程度的分级方式说明如下

    1. 严重:直接导致系统被入侵或数据被破坏,一旦发生,就是严重的安全事件。
    2. 中等:可能导致重要信息的泄漏或有较高可能导致系统被入侵控制
    3. 轻度敏感信息泄漏或存在轻微安全问题,一般不会产生严重的安全事件。
    展开全文
  • 网站安全检测接口网站健康状况查询,网站安全等级说明、高危漏洞、严重漏洞、警告漏洞、提醒漏洞等,检测结果由 360网站安全检测 提供。 接口名称:网站安全检测接口 接口平台:公共api 接口地址:...

    网站安全检测接口网站健康状况查询,网站安全等级说明、高危漏洞、严重漏洞、警告漏洞、提醒漏洞等,检测结果由 360网站安全检测 提供

    接口名称:网站安全检测接口

    接口平台:公共api

    接口地址:http://apis.juhe.cn/webscan/

    支持格式:JSON/XML/JSONP

    请求方式:GET

    请求示例:http://apis.juhe.cn/webscan/?domain=juhe.cn&key=e8653d8956536b7ee9fdc538be7bb707

    网站安全检测接口调用代码JSON返回示例:

    {
    "resultcode":"200",
    "reason":"Successed!",
        "result":{
            "state":1,
            "webstate":1, /*网站安全等级 0:安全 1:警告 2:严重 3:危险  其他:未知*/
            "msg":"警告", /*网站安全等级说明*/
            "data":{
                "loudong":{  /*漏洞*/
                    "high":"0",  /*高危漏洞*/
                    "mid":"0",	/*严重漏洞*/
                    "low":"3",  /*警告漏洞*/
                    "info":"9"  /*提醒漏洞*/
                },
                "guama":{
                    "level":0, /*0说明正常*/
                    "msg":"没有挂马或恶意内容"
                },
                "xujia":{
                    "level":0,
                    "msg":"不是虚假或欺诈网站"
                },
                "cuangai":{
                    "level":0,
                    "msg":"未篡改"
                },
                "pangzhu":{
                    "level":0,
                    "msg":"没有旁注"
                },
                "score":{
                    "score":85,
                    "msg":"安全等级打败了全国77%的网站!但略有瑕疵,离五星神站就差一步啦!"
                },
                "google":{
                    "level":0,
                    "msg":"没有google搜索屏蔽"
                }
            }
        }
    }


    展开全文
  • 网站安全配置Nginx防止网站被攻击

    万次阅读 2016-05-16 16:45:42
    网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)分类:服务器配置 标签:nginx 360网站卫士 CDN 10,216 views人浏览 网站被攻击是一个永恒不变的话题,网站攻击的方式也是一个永恒不变的...

    网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)

    网站被攻击是一个永恒不变的话题,网站攻击的方式也是一个永恒不变的老套路。找几百个电脑(肉鸡),控制这些电脑同时访问你的网站,超过你网站的最大承载能力,然后你就瘫了。方法虽然老土,但却一直都很管用,就像怎么打败美帝国主义,最简单的方法就是 13 亿中国人都移民去美帝,吃他的、用他的、花他的,直接能让美帝破产,压根不需要用武力。土方法,自然解决这个问题的方法也土,就是设置一个海关,控制进入的人口数量,只要不让你进来太多人,你就吃不穷他。 网站也一样,只要控制能够进入的访问数量,你就攻击不了我。

    Nginx 有 2 个模块用于控制访问“数量”和“速度”,简单的说,控制你最多同时有 多少个访问,并且控制你每秒钟最多访问多少次, 你的同时并发访问不能太多,也不能太快,不然就“杀无赦”。

    HttpLimitZoneModule 限制同时并发访问的数量

    HttpLimitReqModule 限制访问数据,每秒内最多几个请求

    请先检查你的 nginx 是否有这 2 个模块,否则~额~没戏,一边墙角哭去吧~~~

    1. 普通配置
      啥叫普通配置 ? 就是说,你的服务器直接面向普通用户,例如 普通用户IE浏览器 ——-> 你的服务器,这也是你能 Google 到的 99% 的Nginx 安全配置例子,基本上就是抄了 Nginx 官方的一个 Sample。考虑到文章的完整性,我这里也就重复一下这个被 千百个网站 已经重复过无数次的 配置

    普通用户IE浏览器 ——-> 你的服务器 由于普通用户直接访问你的服务器,所以你可以直接得到用户的 IP 地址, 而我们的限制就是基于对 来源IP 地址的访问限制

    Nginx 里面设置一个限制

    Shell

    ## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址最多有 50 个并发连接
    ## 你想开 几千个连接 刷死我? 超过 50 个连接,直接返回 503 错误给你,根本不处理你的请求了
    limit_conn_zone $binary_remote_addr zone=TotalConnLimitZone:10m ;
    limit_conn  TotalConnLimitZone  50;
    limit_conn_log_level notice;
    
    ## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址每秒处理 10 个请求
    ## 你想用程序每秒几百次的刷我,没戏,再快了就不处理了,直接返回 503 错误给你
    limit_req_zone $binary_remote_addr zone=ConnLimitZone:10m  rate=10r/s;
    limit_req_log_level notice;
    
    ## 具体服务器配置
    server {
        listen   80;
        location ~ \.php$ {
                    ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
            limit_req zone=ConnLimitZone burst=5 nodelay;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include fastcgi_params;
        }   
    
    }
    
    ## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址最多有 50 个并发连接
    ## 你想开 几千个连接 刷死我? 超过 50 个连接,直接返回 503 错误给你,根本不处理你的请求了
    limit_conn_zone $binary_remote_addr zone=TotalConnLimitZone:10m ;
    limit_conn  TotalConnLimitZone  50;
    limit_conn_log_level notice;
    
    ## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址每秒处理 10 个请求
    ## 你想用程序每秒几百次的刷我,没戏,再快了就不处理了,直接返回 503 错误给你
    limit_req_zone $binary_remote_addr zone=ConnLimitZone:10m  rate=10r/s;
    limit_req_log_level notice;
    
    ## 具体服务器配置
    server {
        listen   80;
        location ~ \.php$ {
                    ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
            limit_req zone=ConnLimitZone burst=5 nodelay;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include    fastcgi_params;
        }    
    
    }

    这样一个最简单的服务器安全限制访问就完成了,这个基本上你 Google 一搜索能搜索到 90% 的网站都是这个例子,而且还强调用“$binary_remote_addr”可以节省内存之类的废话

    1. 你 Google 不到的配置

    很多时候,我们的网站不是简单的 普通用户IE浏览器 ——-> 你的服务器 的结构, 考虑到网络访问速度问题,我们中间可能会有各种 网络加速(CDN)。以本网站 www.bzfshop.net 为例,考虑到网站的安全性和访问加速,我们的架构是:

    普通用户浏览器 —–> 360网站卫士加速(CDN,360防 CC,DOS攻击) ——> 阿里云加速服务器(我们自己建的CDN,阿里云盾) —-> 源服务器(PHP 程序部署在这里,iptables, nginx 安全配置)

    可以看到,我们的网站中间经历了好几层的透明加速和安全过滤, 这种情况下,我们就不能用上面的“普通配置”。因为上面基于 源IP的限制 结果就是,我们把 360网站卫士 或者 阿里云盾 给限制了,因为这里“源IP”地址不再是 普通用户的IP,而是中间 网络加速服务器 的IP地址。我们需要限制的是 最前面的普通用户,而不是中间为我们做加速的 加速服务器。

    2.1 现在我们面对的最直接的问题就是, 经过这么多层加速,我怎么得到“最前面普通用户的 IP 地址”呢?
    (这里只说明结果,不了解 Http 协议的人请自行 Google 或者 Wikipedia http://zh.wikipedia.org/zh-cn/X-Forwarded-For )

    当一个 CDN 或者透明代理服务器把用户的请求转到后面服务器的时候,这个 CDN 服务器会在 Http 的头中加入 一个记录

    X-Forwarded-For : 用户IP, 代理服务器IP

    如果中间经历了不止一个 代理服务器,像 www.bzfshop.net 中间建立多层代理之后,这个 记录会是这样

    X-Forwarded-For : 用户IP, 代理服务器1-IP, 代理服务器2-IP, 代理服务器3-IP, ….

    可以看到经过好多层代理之后, 用户的真实IP 在第一个位置, 后面会跟一串 中间代理服务器的IP地址,从这里取到用户真实的IP地址,针对这个 IP 地址做限制就可以了,

    2.2 经过多层CDN之后取得原始用户的IP地址,nginx 配置
    取得用户的原始地址Shell

    map $http_x_forwarded_for  $clientRealIp {
            ## 没有通过代理,直接用 remote_addr
        ""  $remote_addr;  
            ## 用正则匹配,从 x_forwarded_for 中取得用户的原始IP
            ## 例如   X-Forwarded-For: 202.123.123.11, 208.22.22.234, 192.168.2.100,...
            ## 这里第一个 202.123.123.11 是用户的真实 IP,后面其它都是经过的 CDN 服务器
        ~^(?P<firstAddr>[0-9\.]+),?.*$	$firstAddr;
    }
    
    ## 通过 map 指令,我们为 nginx 创建了一个变量 $clientRealIp ,这个就是 原始用户的真实 IP 地址, 
    ## 不论用户是直接访问,还是通过一串 CDN 之后的访问,我们都能取得正确的原始IP地址
    
    map $http_x_forwarded_for  $clientRealIp {
            ## 没有通过代理,直接用 remote_addr
        ""    $remote_addr;  
            ## 用正则匹配,从 x_forwarded_for 中取得用户的原始IP
            ## 例如   X-Forwarded-For: 202.123.123.11, 208.22.22.234, 192.168.2.100,...
            ## 这里第一个 202.123.123.11 是用户的真实 IP,后面其它都是经过的 CDN 服务器
        ~^(?P<firstAddr>[0-9\.]+),?.*$    $firstAddr;
    }
    
    ## 通过 map 指令,我们为 nginx 创建了一个变量 $clientRealIp ,这个就是 原始用户的真实 IP 地址, 
    ## 不论用户是直接访问,还是通过一串 CDN 之后的访问,我们都能取得正确的原始IP地址
    
    

    2.3 测试、测试
    很多时候,你在网上搜到一堆配置,你照着做了,但是你怎么知道这个配置真的正确 ?是的,我们需要自己做一个有效的真实的测试,验证它是正确的之后才真的采用它

    Nginx 这种配置怎么测试呢? 用 Echo 模块,如果你知道 Nginx 这个模块的话。

    以 www.bzfshop.net 网站为例, 我们首先测试这个 $clientRealIp 是否真的是我们客户机的 IP 地址,在网站上增加一个访问地址,比如 www.bzfshop.net/nginx-test,配置如下:

    给 Nginx 增加一个测试地址Shell

    server {
        listen   80;
            server_name  www.bzfshop.net;
    
            ## 当用户访问 /nginx-test 的时候,我们输出 $clientRealIp 变量,看看这个变量
            ## 值是不是真的 用户源IP 地址
            location /nginx-test {
                    echo $clientRealIp;
            }
    }
    
    server {
        listen   80;
            server_name  www.bzfshop.net;
    
            ## 当用户访问 /nginx-test 的时候,我们输出 $clientRealIp 变量,看看这个变量
            ## 值是不是真的 用户源IP 地址
            location /nginx-test {
                    echo $clientRealIp;
            }
    }

    接下来,用你的浏览器访问 www.bzfshop.net/nginx-test,这个时候会弹出框下载一个文件 nginx-test,下载完成用 notepad++ 打开,里面就是一个 IP 地址

    访问 www.ip138.com ,看看这个里面记录的IP地址是否和 ip138 侦测的IP 一致?

    通过这种方式,你就可以对 Nginx 的一些复杂配置做有效的测试。

    经过测试,我们确认 通过多层CDN 之后,$clientRealIp 仍然是有效的原始用户IP地址

    2.4 根据用户的真实 IP 做连接限制
    下面是修改之后的 Nginx 配置:

    CDN环境下 Nginx 的安全配置Shell

    ## 这里取得原始用户的IP地址
    map $http_x_forwarded_for  $clientRealIp {
        ""  $remote_addr;
        ~^(?P<firstAddr>[0-9\.]+),?.*$	$firstAddr;
    }
    
    ## 针对原始用户 IP 地址做限制
    limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
    limit_conn  TotalConnLimitZone  50;
    limit_conn_log_level notice;
    
    ## 针对原始用户 IP 地址做限制
    limit_req_zone $clientRealIp zone=ConnLimitZone:20m  rate=10r/s;
    #limit_req zone=ConnLimitZone burst=10 nodelay;
    limit_req_log_level notice;
    
    ## 具体服务器配置
    server {
        listen   80;
        location ~ \.php$ {
                    ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
            limit_req zone=ConnLimitZone burst=5 nodelay;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include fastcgi_params;
        }   
    
    }
    
    ## 这里取得原始用户的IP地址
    map $http_x_forwarded_for  $clientRealIp {
        ""    $remote_addr;
        ~^(?P<firstAddr>[0-9\.]+),?.*$    $firstAddr;
    }
    
    ## 针对原始用户 IP 地址做限制
    limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
    limit_conn  TotalConnLimitZone  50;
    limit_conn_log_level notice;
    
    ## 针对原始用户 IP 地址做限制
    limit_req_zone $clientRealIp zone=ConnLimitZone:20m  rate=10r/s;
    #limit_req zone=ConnLimitZone burst=10 nodelay;
    limit_req_log_level notice;
    
    ## 具体服务器配置
    server {
        listen   80;
        location ~ \.php$ {
                    ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
            limit_req zone=ConnLimitZone burst=5 nodelay;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include    fastcgi_params;
        }    
    
    }
    
    

    希望对看到这篇文章的朋友会有用。

    展开全文
  • 网站安全建设

    万次阅读 2018-08-14 14:28:03
    伴随着web技术的发展, 针对官网安全建设的几点思考 ...3、后台管理系统使用不容易被猜到的url(当前系统的url为:网站地址/admin,很容易被猜到)。 4、后台管理系统分配不同的角色,并交由专人维护。 5、...
  • 在很多网站系统构建的一开始,最注重的就是网站程序代码的安全,我们SINE安全对甲方网站公司部署过很多的网站安全系统,之前有一些网站设计公司对于每个项目都会由专人去负责开发与设计,并与甲方网站公司进行沟通,...
  • 网站安全测试工具GoLismero

    千次阅读 2017-01-11 10:28:42
    网站安全测试工具GoLismero
  • 网站安全情况自查表怎么填?

    千次阅读 2020-05-03 17:06:52
    今天收到相关单位一个文档要填写,包括:表二:信息系统运营使用单位填写,表三:网站安全情况自查表,这个怎么填写呢? 按我个人理解,按网站备案的信息填写,网站运行单位填写云服务器/空间/托管提供方,比如...
  • SQL注入攻击(SQL injection)是目前网站安全以及服务器安全层面上是最具有攻击性,危害性较高,被黑客利用最多的一个漏洞,基本上针对于网站代码,包括JAVA JSP PHP ASP apache tomcat 语言开发的代码都会存在sql...
  • 网站安全检测及安全工具

    千次阅读 2016-11-19 00:49:09
    瑞星云安全网站联盟 金山云安全中心 360软件安全认证中心 URLVoid:在线版网络安全检测网站   软件检测: AccessDiver 4.402  专业浏览器安全插件Mcafee SiteAdvisor 诺顿360全能特警V5.0   渗透测试工具:...
  • 怎样才能搞好网站安全防护的工作今天这篇文章本应该在csdn、天天快报、天涯论坛等大网站手机用户数据信息被泄漏时就应该写的,可那时候确实都没有写网站安全防护层面文章内容的推动力,许多自媒体都是在讨论网络信息...
  • 网站安全里,用户密码被暴力破解,尤其网站的用户登录页面,以及网站后台管理登录页面,都会遭到攻击者的暴力破解,常见的网站攻击分SQL语句注入攻击,密码弱口令攻击,用户密码暴力破解攻击,跨站攻击XSS等等网站...
  • linux服务器网站安全狗安装教程

    千次阅读 2018-09-19 15:20:53
    1、下载服务器安全狗和服务器网站安全狗,选择好版本。 http://download.safedog.cn/safedog_linux64.tar.gz 这个是网站安全狗的下载地址 2、登录centos进行下载。 命令是: wget ...
  • 网站安全之HTTPS部署解决方案

    千次阅读 2017-03-04 15:06:52
    网站安全之HTTPS部署解决方案 HTTPS全称为Hypertext Transfer Protocol over Secure Socket Layer,中文含义为“超文本传输协议在安全加密字层”,简单来说就是加密数据传输,通俗的说就是安全连接。 它是一个安全...
  • 针对于PHP代码的开发的网站,最近在给客户做网站安全检测的同时,大大小小的都会存在网站的后台管理页面被绕... 后台验证码缺乏安全验证 比如在axublog程序中,网站后台存在一个验证管理员登录的一个函数chkadcoo...
  • 国内网站安全测试6大步骤

    千次阅读 2018-06-06 14:10:19
    网站安全测试 目标: 1. 发现网络系统中存在的安全隐患和可能被入侵者利用的安全漏洞 2. 与黑客区别: · 渗透测试是经过授权的 · 可控制的、非破坏性的方法 3. 宏观上的分类: · 黑盒测试 不了解目标...
  • WordPress网站安全&搬家视频教程

    千人学习 2017-01-24 16:56:27
    网站就像我们在线上开的店铺,不仅仅需要装修,还需要对店铺进行升级和安全维护,如果空间不给力,我们还需要学会怎么进行网站搬迁。 本套课程就是教会怎么进行网站备份,升级维护、安全搬家等操作。
  • 网站安全之几种常见的网络攻击方式
  • 网站安全维护网站安全维护当中,程序代码的设计逻辑漏洞,以及用户权限越权漏洞是比较常见的,在许许多多的电商以及APP网站里,很多前端业务需要处理的部分验证了用户的登录状态,并没有详细的对后面的一些功能以及...
  • 从六大方面防护你的网站安全

    千次阅读 2016-05-11 16:21:34
    网站安全不仅成为各大中型网站要关注的问题,现在连中小企业网站也无一幸免的收到各种不安全因素的影响。据不完全统计95%以上的网站收到过来自境内外黑客的攻击,90%以上的网站存在严重的网站安全问题。虽然网络安全...
  • 加强您的wordpress网站安全性的13条建议
  • 可以在“站长工具”或“360网站安全检测”进行网站安全检测 以下是个人遇到的网站安全检测问题: 这是修改后的检测返回的信息 之前是存在高危漏洞1个页面 【高危】dedecms本地文件包含 ...
  • 绿盟网站安全防护服务(vWAF)

    千次阅读 2017-09-13 10:00:48
    绿盟网站安全防护服务(vWAF),是绿盟科技针对公有云场景,以虚拟化设备形态为核心的安全服务,全面防护企业客户部署在公有云上的Web业务。核心防护引擎、智能检测引擎、自学习引擎、智能补丁,多种防护,全面对抗...
  • 电子商务网站安全威胁了解

    千次阅读 2010-06-12 13:33:00
    1电子商务网站安全的要求影响  电子商务网站安全的因素是多方面的。从网站内部看,网站计算机硬件、通信设备的可靠性、操作系统、网络协议、数据库系统等自身的安全漏洞,都会影响到网站的安全运行。从...
  • 随着 Web 应用越来越广泛,Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为...
  • 这篇文章我介绍一下我所知道的绕过网站安全狗上传WebShell的方法。 思路是:修改HTTP请求,构成畸形HTTP请求,然后绕过网站安全狗的检测。 废话不多说,切入正题。。。。 1、实验环境: Windows...
  • 网站安全等级保护备案流程

    千次阅读 2019-07-04 08:06:05
    建议网站二级等保建设作为一个整体进行测评和备案。 从调研、选择安全服务商,到合同签订,进入实施阶段,进行安全排查和自我整改、安排测评机构现场测评及测评后整改、再测评,以及贯穿期间的材料补充和整理等 ...
  • 网站安全新隐患——暗链

    千次阅读 2012-08-19 13:31:20
    网站安全新隐患——暗链 文 知道创宇 廖凯  近年来,随着国家相关部门对互联网安全事件的重视、部分软件开发厂商安全意识的提高,曾经红极一时的“挂马”攻击手段已经日趋减少,特别是2009年刑法明确“挂马...
  • iis服务器配置ssl访问后,浏览器提示此网站安全性已经过时用于加载此站点的连接是 TLS 1.0 或 TLS 1.1,这些连接已过时并将在以后关闭。如下图 首先我们要确定系统是否支持TLS1.2 ,参考如下配置图↓↓↓↓↓↓...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 682,267
精华内容 272,906
关键字:

网站安全