ASP表单里的空格回车插入数据库

本博客探讨了在ASP环境下,未进行过滤处理时表单内容如何完整保存,包括空格和回车,并提供了常见过滤语句的使用方法,以确保数据安全和格式一致性。
如果ASP没有做过滤处理,表单里的任何内容,包括空格、回车,都会完完整整的保存的。

检查一下你的ASP代码中,有没有过滤的语句。

常见的包括:

1.trim,它的作用是去掉表单内容的前后的空格。例如trim(request("name")),表格中输入的内容是“ 雷风 ”,经trim处理后,实际取的内容将是“雷风”。

2.replace,它的作用是替换,例如 replace(request("name")," ",""),它的作用是将表单内容中的空格替换为空(即没有内容),也就是将内容中的空格给过滤掉了。同理,回车符也可以过滤掉,但过滤回车的情况要复杂一些,包括:replace(request("name"),"<br>","") replace(request("name"),"<BR>","") replace(request("name"),vbCRLF,"")

(vbCRLF也代表回车)表单里的空格和回车不能保存到数据库,肯定是因为ASP代码中有上述过滤语句。

### 文件上传中的空格绕过原理 在Web应用程序中,文件上传功能如果未正确处理文件名中的空白字符,则可能允许攻击者通过插入特定形式的空格来规避服务器端的安全检查。当开发人员忘记使用`trim()`函数去除文件名两端或多处位置存在的多余空格时,就可能出现这种情况[^4]。 #### 攻击流程 假设一个应用仅过滤黑名单列表内的扩展名(如`.php`, `.asp`),而忽略了对文件名称前后空白字符的有效管理。此时,攻击者可以提交带有额外前导或尾随空格的恶意脚本文件,例如: ```plaintext malicious . php ``` 由于服务端未能移除这些不必要的空格,在保存至磁盘之前,该文件可能会被误认为是一个无害类型的文档并成功存储下来。一旦访问此文件路径,便可能导致远程代码执行等严重后果。 为了实现这种技术,攻击者通常会借助工具如Burp Suite拦截HTTP请求,并手动调整表单数据字段的filename属性值,加入适当数量和位置的空间字符以避开检测机制[^1]。 #### 防御措施建议 为了避免此类风险的发生,应当始终确保输入验证逻辑严谨全面,特别是针对用户可控参数部分;同时也要注意清理所有潜在危险字符,包括但不限于制表符、回车换行以及常规意义上的空白符号。此外,采用严格的白名单策略而非简单的排除法去限定可接受的内容类型将是更为稳妥的做法[^3]。 ```python import os def sanitize_filename(filename): # Remove leading and trailing spaces from filename clean_name = filename.strip() # Further sanitization can be applied here as needed return clean_name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值