再次提到预编译,不会改变固定逻辑。id等于什么的只能更换页面。
过滤器:
代码一旦执行在页面中,就会执行,xss跨站。
Js的特性是显示在页面中之后开始执行,那个代码是打印过后然后再渲染。
是的,核心是**“打印(输出)的内容会被浏览器当作HTML渲染执行”**。
Servlet 里的 out.println(code) 是往HTTP响应的正文中写入内容。而HTTP响应最终会被浏览器接收,浏览器的职责是渲染HTTP响应里的内容(通常响应是HTML格式)。
举个具体流程:
1. 攻击者请求接口时,给 code 参数传入: "<script>alert('XSS')</script>" 。
2. Servlet 通过 req.getParameter("code") 拿到这段恶意字符串,再通过 out.println(code) 把它原封不动写入HTTP响应的body。
3. 浏览器收到这个HTTP响应后,会把响应内容当作HTML代码去解析、渲染——此时, <script>alert('XSS')</script> 就会被浏览器识别为“可执行的JavaScript脚本”,进而执行弹出 alert 框。
简言之:服务端“打印”的是HTML/JS代码片段,浏览器“渲染”时会把这些片段当作可执行的代码处理,而非“纯文本”。
Filter过滤器(访问
访问数据流
是通过关键字识别,类似黑名单,识别到有关键字就会给你过滤。
正在过滤,这个过程是接收数据,但是不放行。最上面的servl et request,之类的东西是功能模块。
servlet应用程序。
监听器:(监听操作。
对象被创建和销毁
对象中的属性变更
监听httpsession文中的对象状态改变。
一般是访问三大类
让监听器生效,不需要写路径,检测到哪个地方触发Session就会触发。
逻辑顺序↑
只要有销毁这个动作会触发监听,不是看路径的。
内存马(内存型木马)做铺垫。
今天讲了监听器和过滤器的概念