1、安全开发-JavaEE-Servlet技术
2、安全开发-JavaEE-监听器&过滤器
参考:
https://mp.weixin.qq.com/s/c_4fOTBKDcByv8MZ9ayaRg
https://blog.csdn.net/qq_52173163/article/details/121110753
一、Servlet
Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。
二、JavaEE-IDEA开发
安装IDEA,激活后安装开发插件
安装JDK,Tomcat,新建项目并配置
1、创建和使用Servlet
①创建一个类继承HttpServlet
下面的"IndexServlet"就是一个创建的类
②web.xml配置Servlet路由
post请求
③WebServlet配置Servlet路由
2、Servlet生命周期
快捷键:alt+insert->快速调出内置方法
写入内置方法(init service(doget dopost等) destroy )
生命周期:先执行init()->service方法(doget,dopost,doput)->destroy()
3、处理接受和回显
get请求传参,数据回显
●HttpServletRequest是ServletRequest的子接口
getParameter(name) — String 通过name获得值
getParameterValues — String[ ] 通过name获得多值
●HttpServletResponse是ServletResponse的子接口
setCharacterEncoding() 设置编码格式
setContentType() 设置解析语言
getWriter() 获得一个PrintWriter字符输出流输出数据
PrintWriter 接受符合类型数据
三、JavaEE-过滤器-Filter
Filter被称为过滤器,过滤器实际上就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或Servlet处理,通常都是用来拦截request进行处理的,也可以对返回的 response进行拦截处理。开发人员利用filter技术,可以实现对所有Web资源的管理,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
1、创建过滤器
2、过滤器内置方法
init doFilter destroy
访问路由/index
3、过滤器触发流程
在过滤器Filter里面设置过滤
重新启动,XssFilter被初始化
传入正常参数,无问题
传入xss恶意语句
路由配置
@WebFilter("/xss")
<filter>
<filter-name>xssFilter</filter-name>
<filter-class>com.example.filter.xssFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>xssFilter</filter-name>
<url-pattern>/xss</url-pattern>
</filter-mapping>
4、过滤器安全场景
Payload检测,权限访问控制,红队内存马植入,蓝队清理内存马等
内存马参考:https://mp.weixin.qq.com/s/hev4G1FivLtqKjt0VhHKmw
5、案例演示
xss攻击的检测,管理页面的cookie检测
四、JavaEE-监听器-Listen
参考:https://blog.csdn.net/qq_52797170/article/details/124023760
-监听ServletContext、HttpSession、ServletRequest等域对象创建和销毁事件
-监听域对象的属性发生修改的事件
-监听在事件发生前、发生后做一些必要的处理
1、创建监听器
2、监听器内置方法
3、监听器触发流程
@WebListener
<listener>
.......
</listener>
4、监听器安全场景
代码审计中分析执行逻辑触发操作,红队内存马植入,蓝队清理内存马等
5、案例演示
session存在的监听
创建一个类似管理界面的类AdminServlet
编写SessionListen类里面的代码
配置路由
启动:
获取session后访问路由/admin
销毁session后访问路由/admin
总结:
a、熟练servlet,Filter过滤器,listen监听器操作
b、熟练两种路由配置方式操作
c、重点理解Servlet生命周期
生命周期:先执行init()->service方法(doget,dopost,doput)->destroy()