用户注册登入模块实现以及常见安全保护

0.前言

用户登入注册的流程其实很简单(不考虑安全需求的流程如下图),但作为用户安全的第一道防线,需要严格的安全措施。市面上常用的攻击手段有sql注入,csrf,xss等。

一.避免sql注入攻击

SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

1.1从url注入:

请求 URL:

 

       POSThttp://localhost:8080/login?username=张三&password=123456

1.2构建不合法请求

                        select * from user where username='张三' and password='' or 1=1 #

1..3避免方法

使用参数化查询:避免直接将用户输入嵌入 SQL 查询中,而是使用预处理语句或参数化查询。 ORM(对象关系映射)功能,能够自动处理 SQL 查询并防止注入。

在java开发中就严格遵循这总,DAO(数据操纵层)-----JDBC-------数据源。DAO 层封装数据库操作,可以确保所有 SQL 查询都使用预处理语句,从而有效防止 SQL 注入攻击

编写数据类

public class Attribute {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String value;

}

 数据接口类--数据库增删改查的函数已经配置好了

@NoRepositoryBean
public interface JpaRepository<T, ID> extends ListCrudRepository<T, ID>, ListPagingAndSortingRepository<T, ID>, QueryBy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值