本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考。

在配置文件添加如下字段即可

 代码如下 复制代码

server { 
## 禁SQL注入 Block SQL injections 
set $block_sql_injections 0; 
if ($query_string ~ "union.*select.*(") { 
set $block_sql_injections 1; 

if ($query_string ~ "union.*all.*select.*") { 
set $block_sql_injections 1; 

if ($query_string ~ "concat.*(") { 
set $block_sql_injections 1; 

if ($block_sql_injections = 1) { 
return 444; 

  
## 禁掉文件注入 
set $block_file_injections 0; 
if ($query_string ~ "[a-zA-Z0-9_]=http://") { 
set $block_file_injections 1; 

if ($query_string ~ "[a-zA-Z0-9_]=(..//?)+") { 
set $block_file_injections 1; 

if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { 
set $block_file_injections 1; 

if ($block_file_injections = 1) { 
return 444; 

  
## 禁掉溢出攻击 
set $block_common_exploits 0; 
if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { 
set $block_common_exploits 1; 

if ($query_string ~ "GLOBALS(=|[|%[0-9A-Z]{0,2})") { 
set $block_common_exploits 1; 

if ($query_string ~ "_REQUEST(=|[|%[0-9A-Z]{0,2})") { 
set $block_common_exploits 1; 

if ($query_string ~ "proc/self/environ") { 
set $block_common_exploits 1; 

if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|%3D)") { 
set $block_common_exploits 1; 

if ($query_string ~ "base64_(en|de)code(.*)") { 
set $block_common_exploits 1; 

if ($block_common_exploits = 1) { 
return 444; 

  
## 禁spam字段 
set $block_spam 0; 
if ($query_string ~ "b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b") { 
set $block_spam 1; 

if ($query_string ~ "b(erections|hoodia|huronriveracres|impotence|levitra|libido)b") { 
set $block_spam 1; 

if ($query_string ~ "b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b") { 
set $block_spam 1; 

if ($query_string ~ "b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b") { 
set $block_spam 1; 

if ($block_spam = 1) { 
return 444; 

  
## 禁掉user-agents 
set $block_user_agents 0; 
  
# Don’t disable wget if you need it to run cron jobs! 
#if ($http_user_agent ~ "Wget") { 
# set $block_user_agents 1; 
#} 
  
# Disable Akeeba Remote Control 2.5 and earlier 
if ($http_user_agent ~ "Indy Library") { 
set $block_user_agents 1; 

  
# Common bandwidth hoggers and hacking tools. 
if ($http_user_agent ~ "libwww-perl") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "GetRight") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "GetWeb!") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "Go!Zilla") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "Download Demon") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "Go-Ahead-Got-It") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "TurnitinBot") { 
set $block_user_agents 1; 

if ($http_user_agent ~ "GrabNet") { 
set $block_user_agents 1; 

  
if ($block_user_agents = 1) { 
return 444; 

}

nginx服务器防sql注入/溢出攻击/spam及禁User-agents的更多相关文章

  1. web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)

    一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...

  2. PHP防SQL注入攻击

    PHP防SQL注入攻击 收藏 没有太多的过滤,主要是针对php和mysql的组合. 一般性的防注入,只要使用php的 addslashes 函数就可以了. 以下是一段copy来的代码: PHP代码 $ ...

  3. PHP防SQL注入和XSS攻击

    摘要: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL ...

  4. tp5怎么防sql注入 xss跨站脚本攻击

    在 application/config.php 中有个配置选项 框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则 则会调用这些函数 自动过滤 // 默认全局过滤方法 用逗号分隔多个 ...

  5. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  6. 防sql注入攻击

    这两天看了个防sql注入,觉得有必要总结一下: 首先需要做一些php的安全配置: 1 在php.ini 中把display_errors改成OFF display_errors = OFF 或在php ...

  7. PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO(PDO一是PHP数据对象(PHP Data Object)的缩写),可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_ ...

  8. PHP防SQL注入不要再用addslashes和mysql_real_escape_string

    PHP防SQL注入不要再用addslashes和mysql_real_escape_string了,有需要的朋友可以参考下. 博主热衷各种互联网技术,常啰嗦,时常伴有强迫症,常更新,觉得文章对你有帮助 ...

  9. C#防SQL注入代码的实现方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点 ...

随机推荐

  1. threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证是同一个

    threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证同一个线程中是同一个共享对象. 如果是静态变量是共享的话,那必须同步,否则尽管有副本,还是会出错,故C错

  2. JVM垃圾回收机制总结(2) :基本算法概述

    1.引用计数收集器 (Reference Counting) 引用计数是垃圾收集的早期策略.在这种方法中,堆中每一个对象都有一个引用计数.一个对象被创建了,并且指向该对象的引用被分配给一个变量,这个对 ...

  3. CentOS 7 中firewall-cmd命令

    在 CentOS 7 暂时开放 ftp 服务# firewall-cmd --add-service=ftp 永久开放 ftp 服务# firewall-cmd --add-service=ftp - ...

  4. WebService另一种轻量级实现—Hessian 学习笔记

    最近和同事聊天,得知他们在使用一种叫做Hessian的WebService实现方式实现远 程方法调用,是轻量级的,不依赖JavaEE容器,同时也是二进制数据格式传输,效率比SOAP的XML方式要高.感 ...

  5. 超大整数运算算法——为RSA加密算法提供运算工具

    /* program: Large integer operations * Made by:  Daiyyr * date:  2013/07/09 * This software is licen ...

  6. sysfs - 用于导出内核对象(kobject)的文件系统

    sysfs - _The_ filesystem for exporting kernel objects.sysfs - 用于导出内核对象(kobject)的文件系统Patrick Mochel & ...

  7. [HDOJ5521]Meeting(最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5521 给n个点,m个块.块内点到点之间话费的时间ti.两个人分别从点1和点n出发,问两人是否可以相遇, ...

  8. 《OD学oozie》20160813

    一.日志收集项目案例 1. oozie中依赖jar包 在工作目录下创建lib目录,上传依赖包的lib目录下 2. 作业 将日志收集与处理项目案例使用oozie的workflow执行 3. coordi ...

  9. ubuntu 搭建Erlang开发环境

    首先,打好库: sudo apt-get install build-essential sudo apt-get install libncurses5-dev sudo apt-get insta ...

  10. android下身份验证方式调用webservice

    在企业开发领域,webservice还是经常被用到的服务体系,因为他对安全事务支持都比较好. 有时候,我们就需要在android下调用后端的webservice服务,因为在内部网络环境下,所有需要ba ...