Java安全编码之用户输入

访客5年前黑客文章626

1、传统Web使用与新式移动使用
(1)传统Web使用:浏览器 HTTP 服务器(2)新式移动使用:APP HTTP 服务器
从安全视点看,传统Web使用与新式移动使用没有本质区别
2、Web使用安全的中心问题是什么?
用户提交的数据不可信是Web使用程序中心安全问题
用户能够提交恣意输入
例如:
√ 恳求参数->屡次提交或许不提交√ 修正Cookie√ 修正HTTP信息头√ 恳求次序->越过或许打乱
3、Web使用防护
(1)完善的反常处理(2)监控(3)日志:记载重要事务、反常的具体恳求信息
4、对输入的处理
主张选用:白名单尽量防止:净化或黑名单
0x01 SQL注入
1、原理:
(1)合法输入:
id=1
SELECT * FROM users WHRER id='1';
(2)歹意注入:
id=1' or '1'='1
SELECT * FROM users WHRER id='1' or 'a'='a';
2、Java代码剖析(JDBC)
(1)不合规代码(SQL参数拼接)
public class SQLInject {
    public static void main(String[] args)throws Exception{
        //正常输入
        select("1");
        // 歹意输入
        select("' or 'a'='a");
    }
    public static void  select(String id){
        //声明Connection目标
        Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要拜访的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/mybatis";
        //MySQL装备时的用户名
        String user = "root";
        //MySQL装备时的暗码
        String password = "budi";
        //遍历查询成果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()办法,衔接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创立statement类目标,用来履行SQL句子!!
            Statement statement = con.createStatement();
            //要履行的SQL句子
            String sql = "select * from users where id='"+id+"'";
            //3.ResultSet类,用来寄存获取的成果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("履行成果如下所示:"); 
            System.out.println("-----------------");
            String age,name;
            while(rs.next()){
                //获取stuname这列数据
                name = rs.getString("name");
                //获取stuid这列数据
                age = rs.getString("age");
                //输出成果
                System.out.println(name + "t" + age);
            }

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]  黑客接单网

相关文章

使用QL和LGTM进行变异分析-黑客接单平台

在软件开发中,咱们常常看到相同的代码过错在项目的生命周期中重复呈现。这些相同的过错甚至会呈现在多个项目中。有时,这些过错一同有多个活动实例,有时一次只要一个活动实例,可是它们不断地从头呈现。当这些过错...

浏览器进犯结构BeEF Part 4:绕过同源战略与浏览器署理

从这一章开端,正式进入了进犯阶段。BeEF供给了很多的进犯模块,能够直接运用。除了已有的模块,BeEF还供给了API,能够运用API来自行开发新的进犯模块。这一章,要介绍怎么绕过同源战略,还会介绍Be...

百度浏览器的隐私安全问题剖析

首要发现 百度阅读器是微柔和安卓渠道上的一种网络阅读器,个人用户在向服务器传输数据时进行加密,就算加密了也很简略被解密。阅读器更新时或许很轻易地被中心攻击者运用,履行恣意代码。 安卓版别的百度阅读器...

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE-黑客接单平台

网络抓取结构中运用最多的莫过所以scrapy,但是咱们是否考虑过这个结构是否存在缝隙妮?5年前曾经在scrapy中爆出过XXE缝隙,但是这次咱们发现的缝隙是一个LPE。 经过该缝隙能够获得shell,...

把PHP LFI缝隙变为Webshell的形式

存眷PHP缝隙的同伙必定知道LFI+phpinfo可以搞出一个webshell。 LFI这个条件还算异常,但phpinfo这个照样比较难凑的,所以有点鸡肋。接下来,我共享一个……异常鸡肋的思绪……人人...

梦里参加攻防演习活动的过程分享(上)-黑客接单平台

0×01 前语 跟着国家对网络安全的进一步注重,攻防演练活动变得越来越重要,规划也更大。高强度的演习让无论是蓝方仍是红方都变得筋疲力尽,借用朋友圈里一位大佬的一句话:活动完毕的这一天,安全圈的气氛像春...