SQL注入
最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.

跨站脚本攻击(XSS)
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。

文件包含
由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行。由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行。文件包含攻击中WEB服务器源码里可能存在inlcude()此类文件包含操作函数,可以通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因。

代码执行
远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

文件上传
利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。
导致该漏洞的原因在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。

信息泄露
80%的安全威胁来自企业内部,将近60%的离职者或被辞退者在离开时会携带企业数据,也有许多黑客通过层出不穷的技术手段,窃取各种重要信息,已经成为信息安全的巨大威胁。

权限许可和访问控制
按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术,如UniNAC网络准入控制系统的原理就是基于此技术之上。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。

跨站请求伪造(CSRF)
跨站请求伪造(英语:Cross-site request forgery),也被称为one-click attack或者session riding,通常缩写为CSRF或者XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

路径遍历
路径遍历漏洞是很常见的,在Web应用程序编写过程,会有意识的对传递过来的参数进行过滤或者直接删除,存在风险的过滤方式

设计错误
开发中逻辑错误、或业务流程等。

配置错误
配置错误致使关键信息泄露

文件读取
命令执行
文件下载
弱口令
文件创建
授权问题
后门
其它类(敏感文件泄露、变量覆盖、服务器/WEB环境、语言本身漏洞等)

注意事项:
1.避免系统管理弱口令
2.服务器SSH安全配置
# 查看成功登录的日志,空格翻页,q退出
shell> last | less

# 查看登录失败的日志
shell> lastb | less

(1)修改SSH服务端口
修改SSH配置文件,将其监听端口更改为大于10000的值,发挥您的想象力:
shell> vi /etc/ssh/sshd_config
# 指定端口号
Port 22345
修改iptables软件防火墙把默认的22端口改为刚才指定的端口:
# 也可以使用 setup来进行配置iptables软件防火墙
shell> vi /etc/sysconfig/iptables
# 重启iptables,或者使用 service iptables restart
shell> /etc/init.d/iptables restart
注意:关于SSH, FTP这些端口的修改,一定要在修改后立即进行连接测试,以防由于误操作,断开了当前连接而无法再次连接主机。

(2)  禁止root账户远程登录
通过修改默认端口基本上可以阻挡99%恶意扫描信息(根据个人观察),紧接着要做的就是禁止root远程直接登录。因为通过分析扫描日志,你会发现root账户试探的次数一直是永居榜首:
shell> vi /etc/ssh/sshd_config
# 禁止root账户登录
PermitRootLogin no
然后创建个普通账户,当我们需要远程连接的时候,先通过普通账户登录,再su -到root。普通账户的用户名需要你费心思创造个奇葩的,想到admin这样的用户名请先去反思:
shell> useradd yaoniming3000
shell> passwd yaoniming3000
使用普通账户登录服务器后执行su –切换
# 注意su后面有个减号,是同时切换环境变量的意思
shell> su –
同样,修改完毕,还是立即进行连接测试,以防无法连接主机

(3)  限制服务器IP或VPN登入
如果有条件,强烈建议配置服务器的远程登录权限只能通过特定IP段或VPN方可登入。

3.禁用PHP敏感函数
很多木马程序和服务器攻击都是利用PHP内置的敏感函数,因此需要在配置文件中禁用这些敏感函数,以下列出一些函数,可以根据实际情况配置:
shell> vi /etc/php.ini
disable_functions =
exec,shell_exec,system,popen,escapeshellcmd,escapeshellarg,gzuncompress,proc_open,proc_get_status,show_source,gzinflate,phpinfo
重启服务生效

4.限制PHP脚本的执行目录
如果网站不幸被植入了木马,通过限制PHP脚本的执行目录,可以禁止木马程序浏览操作系统的系统文件,进而产生更大的破坏,一共有两步操作:
shell> vi /etc/php.ini
open_basedir = /data/www/:/tmp/
或者通过NGINX的配置文件来限制目录执行PHP

5.开启访问日志

6.MySQL安全配置
(1)  数据目录和数据文件的安全性
设置MySQL数据目录为700,即只有启动数据库的用户可以读写数据库文件,保证了本地数据文件的安全。
shell> chmod 700 /www/mysql
设置MySQL日志目录为770,即只有数据库用户和组成员可以查看
shell> chmod 770 /var/log/mysql

(2)  本地日志文件安全性
有些用户在本地登陆或备份数据库的时候为了图方便,有时会在命令行参数里直接带了数据库的密码,如:
shell> mysql -uroot –ptest
shell> mysqldump -uroot -ptest test > test.sql
这些命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏。所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外用户本地登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。所以必要时我们可以这样做:
shell>rm ~/.bash_history ~/.mysql_history
shell>ln -s /dev/null ~/.bash_history
shell>ln -s /dev/null ~/.mysql_history

(3)  数据库账户的配置
请不要直接使用数据库root账户来进行CmsTop数据库的管理,并配置数据库root账户只允许本地连接数据库。
针对每个数据库设置不同的用户、密码、连接限制权限,如果您不熟悉SQL可借助phpMyAdmin图形化web界面来进行配置。
mysql> select user,host from mysql.user;
+--------------+------------------+
| user         |   host          |
+--------------+------------------+
| root            | localhost |

(4)  数据库的外网访问
数据库一般不需要通过外网访问,所以也不需要配置外网IP,开放外网端口,当数据库与应用分开时,应该通过内网IP来进行连接。

(5)  phpMyAdmin的访问控制
使用phpMyAdmin来进行数据库管理,不要为了图方便,将该目录放置到CmsTop的系统目录中运行。
可以单独配置一个域名来进行访问,并且不要进行公网DNS解析,让外网直接访问。

7.木马检查
如果网站因为某些原因被入侵或被挂马,可以通过以下简易手段进行排查,快速解决问题,另外也请及时联系我们的技术支持人员,进行排查。
(1)模版文件检查
一般模版文件植入木马,都是通过访问动态脚本加载模版运行,一般都要接收外部参数,通过以下三句指令进行基本的检查:
shell> grep –rl “_REQUEST”templates/
shell> grep –rl “_POST”templates/
shell> grep –rl “preg_replace”templates/

(2)可执行PHP目录检查
可执行PHP目录有public/app,public/mobile,public/wap等,同样通过以上指令进行检查,搜索的是木马的特征码。鉴于木马的变种实在是太多,就不详细举例了:
shell> grep –rl “特征” public/app

(3)定期检查访问日志文件
通常入侵会来自于前台的动态域名,可通过以下指令对访问日志的URL进行分组排序并分析:
#查看访问次数最多的url
cat  /var/log/httpd/app.domain-access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less
如果您有多台Web服务器,则需要分别查看。

web上常见的攻击方式及简单的防御方法的更多相关文章

  1. WEB开发中一些常见的攻击方式及简单的防御方法

    WEB开发中一些常见的攻击方式及简单的防御方法 转载:http://blog.csdn.net/seven__________7/article/details/70896913

  2. C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路

    C#不用union,而是有更好的方式实现   用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...

  3. WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...

  4. 【转】WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...

  5. WEB前端常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的 ...

  6. 前端之web上传文件的方式

    前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传 ...

  7. 第九篇:web之前端之web上传文件的方式

    前端之web上传文件的方式   前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构 ...

  8. Django文件上传三种方式以及简单预览功能

    主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...

  9. web开发常见性能优化方式

    经常使用的高并发. 高性能web,数据库server.  1.html 静态化 : 如新闻频道更新的非常快,都是通过cms静态生成(门户,信息公布类型的站点,交互性高的如猫扑的大杂烩也是静态化,实时静 ...

随机推荐

  1. 管道式编程(Pipeline Style programming)

    受 F# 中的管道运算符和 C# 中的 LINQ 语法,管道式编程为 C# 提供了更加灵活性的功能性编程.通过使用 扩展函数 可以将多个功能连接起来构建成一个管道. 前言 在 C# 编程中,管道式编程 ...

  2. 关于Hive中的join和left join的理解

    一.join与left join的全称 JOIN是INNER JOIN的简写,LEFT JOIN是LEFT OUTER JOIN的简写. 二.join与left join的应用场景 JOIN一般用于A ...

  3. webpack config to use plugin and webpack-dev-server

    Demo3操作手册 本Demo演示如何配合各种plugin进行偏复杂的使用 准备环境 初始化环境, cd到demo1目录之后, 执行如下命令: npm init -y npm install webp ...

  4. MySQL DBA的KPI考核指标有哪些

    绩效考核是对一名员工所作工作的数量.质量.难度.强度.效率的量化考量.由于DBA的工作性质与纯粹的研发人员或运维人员有所区别,对DBA的KPI考核指标也有其特殊性.参考以往的经验和一些较大的DBA t ...

  5. CH08 QSPI启动并从EMMC运行APP

    8.1 概述 在前一节课,我们必须手动挂载TF卡到mnt,然后输入./a.out程序才能启动.而在嵌入式系统里面,我们很多时候需要实现开机启动程序.很多时候我们会把程序固化到FLASH,然后从EMMC ...

  6. adb连接安卓设备的2种方式

    一.usb连接 安卓设备打开开发者模式,启用usb调试 CMD窗口输入adb devices,此时可以看到自己的设备 PS:无法看到自己设备时,查看手机USB调试是否打开:PC端是否安装手机驱动. 二 ...

  7. puppet工作原理之模块使用

    一.模块介绍 1.什么是模块 通常情况把manifest文件分解成易于理解得结构,例如类文件,配置文件分类存放,并通过某种机制整合使用,这种机制就是模块,有助于结构化.层次化的方式使用puppet,p ...

  8. OSS服务和自建服务器存储对比

    1 OSS 1.1 什么是OSS   阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它是一个分布式的对象存储服务 ...

  9. 【转载】使用Jedis操作redis

    Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted se ...

  10. Linux入职基础-1.1_国内开源的主要镜像站

    Linux入职基础-1.1_国内开源的主要镜像站 东北地区: 东北大学  http://mirror.neu.edu.cn 大连理工大学  http://mirror.dlut.edu.cn 大连东软 ...