5.7.1 命令合规性判断
来源:互联网 发布:centos ssh漏洞 编辑:程序博客网 时间:2024/04/30 13:41
各个命令处理函数都要判断命令格式的合规性:
1 HELO/EHLO命令有且只有1个参数,少于一个参数则报错,多于一个参数将其合并:
if (argc < 2) { state->error_mask|= MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state,"501 Syntax: HELO hostname"); return(-1); } if (argc > 2) collapse_args(argc- 1, argv + 1);
2 MAIL命令的参数合规性判断:
(1) 如果设定了smtpd_helo_required参数,则必须提供HELO命令。
(2) 宏SMTPD_IN_MAIL_TRANSACTION展开为:
/*
* Are we in a MAIL transaction?
*/
#define SMTPD_IN_MAIL_TRANSACTION(state)((state)->sender != 0)
SMTPD_STATE->sender字段为发件人,如果在MAIL命令处理开始已经有发件人了,说明MAIL指令已经运行过了,smtp会话不需要多次运行MAIL命令。
(3) MAIL命令有不小于3个的参数,且第二个参数必须为”from:”:
if(var_helo_required && state->helo_name == 0) { state->error_mask|= MAIL_ERROR_POLICY; smtpd_chat_reply(state,"503 5.5.1 Error: send HELO/EHLO first"); return(-1); } if (SMTPD_IN_MAIL_TRANSACTION(state)) { state->error_mask|= MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state,"503 5.5.1 Error: nested MAIL command"); return(-1); } if (argc < 3 ||strcasecmp(argv[1].strval, "from:") != 0) { state->error_mask|= MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state,"501 5.5.4 Syntax: MAIL FROM:<address>"); return(-1);}
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
3 RCPT命令参数合规性判断
mail_cmd中SMTPD_IN_MAIL_TRANSACTION成立则报错,因为不能有两条MAIL指令,这里SMTPD_IN_MAIL_TRANSACTION不成立则报错,要求在执行RCPT指令前执行了MAIL指令。RCPT命令有不少于3个参数且第二个必须为“to:”:
if (!SMTPD_IN_MAIL_TRANSACTION(state)) { state->error_mask|= MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state,"503 5.5.1 Error: need MAIL command"); return(-1); } if (argc < 3 ||strcasecmp(argv[1].strval, "to:") != 0) { state->error_mask|= MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state,"501 5.5.4 Syntax: RCPT TO:<address>"); return(-1);}
4 DATA命令不能有参数
if (argc != 1) { state->error_mask |=MAIL_ERROR_PROTOCOL; smtpd_chat_reply(state, "501 5.5.4Syntax: DATA"); return (-1); }
0 0
- 5.7.1 命令合规性判断
- 信息安全合规性产品
- 互联网金融乱弹1:HOMS被查以及叫停的启示,合规性!
- Maquiladorasimmex合规性 - 法律和法规
- 关于云计算合规性的四条建议
- 对从mysql读取的数据进行合规性检测
- 麦子金服:重视平台的安全性与合规性
- 麒麟开源堡垒主机在等保上的合规性分析
- 云计算的三大挑战:安全性、合规性和成本控制
- 兰州银行扫码取款1天被叫停,金融创新需要合规
- 云上合规
- ios 缺少合规证明
- AWS自动化合规slide
- VMware Workstation导入.ovf文件时失败“未通过 OVF 规范一致性或虚拟硬件合规性检查”
- vmware workstation导入ovf文件报错:未通过OVF规范一致性或虚拟硬件合规性检查
- 如何准备HIPAA合规审核
- 宣布 Windows Azure 通过 PCI DSS 合规性验证并且 ISO 认证范围扩大,同时正式发布 Windows Azure Hyper-V 恢复管理器和其他更新功能
- 个回复该回复合法合规
- 设计模式---观察者模式
- HTTPS站点搭建教程:Win7/Windows Server 2008R2
- 微软2016校园招聘4月在线笔试 hihocoder 1288 Font Size (模拟)
- Recursive Learning
- dwz局部刷新两种方式:
- 5.7.1 命令合规性判断
- 0 | C堆&栈
- Day5、Python
- 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案
- 快速排序
- 【笔记】 《js权威指南》- 第15章 脚本化文档 - 15.5 元素的内容
- Linux安装JDK
- objective-c 输出格式符
- 择业之初