当前位置: 首页 > news >正文

中国小康建设官方网站建设银行网站建设情况

中国小康建设官方网站,建设银行网站建设情况,英文网站开发哪家好,h5 app开发 网站建设前言 java开发和其他开发的不同并且更安全就是因为他拥有简单的预编译机制 filter 过滤器 和 listener 监听器 这个很重要 就是 web应用监听器和过滤器是在 Servlet 之前的并且 我们的请求和响应都需要经过 两者的同意才可以通过 缺一不可 、 Listener 安全方面 监听器…

前言

java开发和其他开发的不同并且更安全就是因为他拥有简单的预编译机制 filter 过滤器 和 listener 监听器 

这个很重要  就是 web应用监听器和过滤器是在 Servlet 之前的并且 我们的请求和响应都需要经过 两者的同意才可以通过  缺一不可   、

Listener

安全方面 监听器的主要作用就是 内存马的使用(内存马和普通的木马的根本区别就是 难杀 他是在内存的程序 而不是一个单一的文件   可以理解为普通的木马就是 一个文件  而内存马就是可以一直生成文件的一个程序 )

这个的路由问题是 过滤器都有特定的路由地址  但是监听器没有 监听器类似于 js事件有事件就会触发 

Filter

过滤器是非常重要的一个功能 他就相当于安全狗 会指定一些过滤  

Filter的部署

为了方便先创建 两个文件应用程序

没装备 过滤器时

package servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;import static java.lang.System.out;public class XianShi extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.doGet(req, resp);String code =req.getParameter("code");//传统的fileter 写法 :if(code==null){out.println("请输入正确的值");}// 过滤器的创建req.setCharacterEncoding("utf-8");resp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("code"+code);out.flush();out.close();}
}

web入口配置路由或者是直接 在当前页面上写入 @Webservlet("/xxxx")  进行配置路由

访问code并输入Xss参数  就会出现 弹窗

那就可以使用filter进行阻断 (过滤器其实就是放行器只有 我们的输入是满足条件的才会进行放行)

新建一个Xss文件

创建类时使用

implements Filter

进行调用接口  然后  使用接口的三个类

因为Fileter的进行是在Servlet之前的 

配置路由

@WebFilter("/code")

这个是和 servlet是一致的  可千万别写为  WebServlet 这样就会造成服务的冲突

另外路由

在web.xml 中配置<filter><filter-name>Xss</filter-name><filter-class>filter.Xss</filter-class></filter><filter-mapping><filter-name>Xss</filter-name><url-pattern>/code</url-pattern></filter-mapping>

有Filter之后

package filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@WebFilter("/code")
public class Xss implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {
//        Filter.super.init(filterConfig);System.out.println("Xss init");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest qingqiu = (HttpServletRequest) servletRequest;   //先接受get的值String code = qingqiu.getParameter("code");   //获取参数if (!code.contains("<>")) {  // 判断内容filterChain.doFilter(servletRequest, servletResponse);  //把请求和响应放出}else {System.out.println("Xss code");}}@Overridepublic void destroy() {
//        Filter.super.destroy();System.out.println("Xss destroy");}
}

运行一下是不会触发的

简单Filter的内存马

filter内存马杀不死的原因就是因为他不是severlet层的 而是上一层的

哥斯拉生成一个木马

注意这个webapp才是应用程序

直接访问  哥斯拉连接

使用filter 可以进行删除过滤

监听器的部署

主要的用途就是记录访问的客流量等记录的功能

应用程序
package Linsten;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/cs")
public class Cs extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("init");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        System.out.println("doGet");System.out.println("Servlet里面创建Session");//创建Sessionreq.getSession();//使用linsten 当}
}

监听器

package Linsten;import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;public class CL implements HttpSessionListener {public void sessionCreated(HttpSessionEvent se) {System.out.println("Session created");}
}

SQl语句的预编译的调用

JDBC篇

先在 news 这个表里 加数据 2,3 条

不使用预编译使用拼接模式

import javax.servlet.http.HttpServlet;
import java.sql.*;
import java.util.Scanner;public class Select extends HttpServlet {public static void main(String[] args) throws ClassNotFoundException, SQLException {Scanner id1 = new Scanner(System.in);System.out.println("请输入你要查询的id");String name = id1.nextLine();System.out.println(name);//注册  驱动Class.forName("com.mysql.jdbc.Driver");//  建立数据库连接String url = "jdbc:mysql://localhost:3306/demo01";Connection con = DriverManager.getConnection(url,"root","123456");String sql = "select * from news where id="+name;  // 拼接式的语句// 创建statementStatement huihua = con.createStatement();ResultSet jieguo=huihua.executeQuery(sql);// 结果的遍历//while(jieguo.next()){String id=jieguo.getString("id");System.out.println(id);String title=jieguo.getString("page_title");System.out.println(title);String author=jieguo.getString("heading");System.out.println(author);String content=jieguo.getString("content");System.out.println(content);}}
}

可以被随意的sql注入

使用预编译

只需把我们的statement会话改为 preparedstatement 会话就行 执行预编译

//使用预编译写法String sql1="select * from news where id=?";PreparedStatement preparedStatement=lianejie.prepareStatement();preparedStatement.setString(1,s);ResultSet jieguo=preparedStatement.executeQuery();

预编译的原理就是使用固定的逻辑 ? 来防止多余的字段的注入或者其他逻辑的干扰

http://www.yayakq.cn/news/233575/

相关文章:

  • 百度快照 直接进网站网页设计公司的市场评估
  • 合肥公司建设网站枝江网站建设
  • 做网站简单需要什么软件自己怎么做淘宝网站
  • 南昌师范学院网站建设的意义和目的中山今科网站建设
  • 网站便捷营销成品源码1688网站免费
  • 高端网站建设服务商上海雍熙网站流量检测
  • 申请免费个人网站空间汕头建设工程信息网
  • 莱芜租房深圳互联时空网站优化怎么样
  • 中山专业外贸网站开发seo如何优化网站步骤
  • 上海网站建设 中华企业录旧宫网站建设
  • 如何做美食网站沧州网站建设培训
  • 网页版视频网站建设需要多少钱网站接单做项目
  • 营销网站建设的步骤过程免费解析网站制作
  • 可以做英文单词puzzle的网站广告设计软件coreldraw
  • 企业网站建设与实施调查报告iis做的网站如何添加播放器
  • asp网站怎么改成中英双语金坛市住房和城乡建设局 网站
  • 专门做教育咨询有限公司网站可以做动画的网站都有哪些
  • wordpress导航菜单 设置网站seo工作内容
  • 网站一般多长网站建设 重庆
  • 做网站花的钱和优化网站有关系吗数字媒体应用 网站开发
  • 想接外包做网站自己注册网站要多少钱
  • 泰安个人代做网站郑州网站推广哪家专业
  • 上海市建设工程检测行业协会网站有什么免费开发网站建设软件有哪些
  • 外销网站建立做聊天网站的视频教程
  • 福田网站建设福田网站设计深圳网站设计公司哪个
  • 烟台建设科技网站页游传奇
  • 视频购物网站开发方案英文网站怎么设计
  • wordpress内容登陆后可见seo推广的方法
  • 淘宝客没网站怎么做ui设计是什么含义
  • 马鞍山市建设银行网站青岛网站建设哪家