应用软件安全编程--18预防存储型 XSS

应用程序从数据库或其他后端数据存储获取不可信赖的数据,在未检验数据是否存在恶意代码的 情况下,便将其传送给了 Web 用户,应用程序将易于受到存储型 XSS 攻击。

对于预防存储型 XSS 的情况,示例给出了不规范用法(Java 语言)示例。

java 复制代码
示例:

<%   .

Statement     stmt     =     conn.createStatement();

ResultSetrs = stmt.executeQuery("select * from users where id ="+ id);

String address = null;

if   (rs!=    null){

rs.next();

address = rs.getString("address");

 

%>

家庭地址:<%= address %〉

上面 JSP 代码片段的功能是根据一个已知雇员ID(eid)从数据库中查询出该雇员的姓名,并显示 在JSP 页面上。

如果 name 的值是由用户提供的,且存入数据库时没有进行合理的校验,那么攻击者就可以利用上 面的代码进行存储型 XSS 攻击。

为了避免存储型XSS 攻击,建议采用以下方式进行防御:

a) 与预防反射型 XSS 相同,对用户的输入进行合理验证(如年龄只能是数字),对特殊字符(如 〈、〉、"以及<script〉、javascript等)进行过滤。

b) 与预防反射型 XSS 相同,根据数据将要置于 HTML上下文中的不同位置(HTML 标签、HTML属性、JavaScript脚本、CSS、URL),对所有不可信数据进行恰当的输出编码。

c) 与预防反射型 XSS 相同,设置 HttpOnly 属性。

相关推荐
yaaakaaang9 分钟前
(五)前端,如此简单!---变量
前端·javascript
2501_9419820512 分钟前
企微私域:实现企业通讯工具外部群消息的自动化主动推送
java·前端·javascript
三*一16 分钟前
基于 Turf.js 实现高精度多边形修整工具(模拟 ArcGIS 修整功能)
开发语言·前端·javascript·arcgis·maobox gl·turf.js
踩着两条虫16 分钟前
VTJ.PRO 在线应用开发平台的工作台与后台管理视图
前端·人工智能·ai编程
踩着两条虫17 分钟前
VTJ.PRO 在线应用开发平台多平台运行时(Web, H5, UniApp)
前端·低代码·ai编程
心勤则明18 分钟前
Spring AI Alibaba MCP 协议的全链路安全与动态鉴权
java·安全·spring
Bruce204899823 分钟前
2026 云原生安全:Rust 编写微服务网关与零信任实践
安全·云原生·rust
moton201724 分钟前
TLS会话恢复机制深度解析:Session ID、Ticket 与 TLS1.3 PSK架构
数据库·网络协议·安全·架构·ssl·物联网架构
ZC19959225 分钟前
Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
前端·npm·node.js
Sombra_Olivia25 分钟前
Vulhub 中的 apache-cxf CVE-2024-28752
安全·web安全·网络安全·渗透测试·vulhub