防止本地用户用fsockopen DDOS攻击对策


Posted in PHP onNovember 02, 2011

原因
php脚本部分源码:

$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5); 
if($fp){ 
fwrite($fp, $out); 
fclose($fp);

php脚本中的 fsockopen 函数,对外部地址,通过UDP发送大量的数据包,攻击对方。

应对
可通过 php.ini ,禁用 fsockopen 函数,及使用Windows 2003的 安全策略 屏蔽本机的UDP端口。

禁用函数
查找到 disable_functions ,添加需禁用的函数名,如下例:

passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

重启IIS后生效。

屏蔽UDP端口
将以下着色文本复制到记事本,另存为 banudp.bat 或任意名,双击运行即可。

REM 添加安全策略,名称
netsh ipsec static add policy name=我的安全策略

REM 添加 IP筛选器列表
netsh ipsec static add filterlist name=允许列表
netsh ipsec static add filterlist name=拒绝列表

REM 添加筛选器到IP筛选器列表(允许上网)
netsh ipsec static add filter filterlist=允许列表 srcaddr=me dstaddr=any description=dns访问 protocol=udp mirrored=yes dstport=53

REM 添加筛选器到IP筛选器列表(不让别人访问)
netsh ipsec static add filter filterlist=拒绝列表 srcaddr=any dstaddr=me description=别人到我任何访问 protocol=udp mirrored=yes

REM 添加筛选器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block

REM 创建一个链接指定 IPSec 策略、筛选器列表和筛选器操作的规则(加入规则到我的安全策略)
netsh ipsec static add rule name=允许规则 policy=我的安全策略 filterlist=允许列表 filteraction=可以
netsh ipsec static add rule name=拒绝规则 policy=我的安全策略 filterlist=拒绝列表 filteraction=不可以

REM 激活我的安全策略
netsh ipsec static set policy name=我的安全策略 assign=y

PHP 相关文章推荐
php for 循环语句使用方法详细说明
May 09 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
深入PHP autoload机制的详解
Jun 09 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
Yii框架中memcache用法实例
Dec 03 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
Yii框架上传图片用法总结
Mar 28 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 #PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 #PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 #PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 #PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 #PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 #PHP
求PHP数组最大值,最小值的代码
Oct 31 #PHP
You might like
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
浅析Python编写函数装饰器
2016/03/18 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
出差报告怎么写
2014/11/06 职场文书
房产公证书样本
2015/01/23 职场文书
护士年终个人总结
2015/02/13 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
Python实现抖音热搜定时爬取功能
2022/03/16 Python
nginx共享内存的机制详解
2022/03/21 Servers