SQL注入原理讲解,很不错!

原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html

1.1.1 摘要

日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。

网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。

SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。

1.1.2 正文

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

具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

首先让我们了解什么时候可能发生SQL Injection。

假设我们在浏览器中输入URL www.sample.com,由于它只是对页面的简单请求无需对数据库动进行动态请求,所以它不存在SQL Injection,当我们输入www.sample.com?testid=23时,我们在URL中传递变量testid,并且提供值为23,由于它是对数据库进行动态查询的请求(其中?testid=23表示数据库查询变量),所以我们可以该URL中嵌入恶意SQL语句。

现在我们知道SQL Injection适用场合,接下来我们将通过具体的例子来说明SQL Injection的应用,这里我们以pubs数据库作为例子。

我们通过Web页面查询job表中的招聘信息,job表的设计如下:

图1 jobs表

接着让我们实现Web程序,它根据工作Id(job_id)来查询相应的招聘信息,示意代码如下:

/// 
/// Handles the Load event of the Page control.
/// 
/// The source of the event.
/// The  instance containing the event data.
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // Gets departmentId from http request.
        string queryString = Request.QueryString["departmentID"];
        if (!string.IsNullOrEmpty(queryString))
        {
            // Gets data from database.
            gdvData.DataSource = GetData(queryString.Trim());

            // Binds data to gridview.
            gdvData.DataBind();
        }
    }
}

现在我们已经完成了Web程序,接下来让我们查询相应招聘信息吧。

图2 job表查询结果

如图所示,我们要查询数据库中工作Id值为1的工作信息,而且在页面显示了该工作的Id,Description,Min Lvl和Max Lvl等信息。

现在要求我们实现根据工作Id查询相应工作信息的功能,想必大家很快可以给出解决方案,SQL示意代码如下:

SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs
WHERE     (job_id = 1)

假设现在要求我们获取Department表中的所有数据,而且必须保留WHERE语句,那我们只要确保WHERE恒真就OK了,SQL示意代码如下:

SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs
WHERE     (job_id = 1) OR 1 = 1

上面我们使得WHERE恒真,所以该查询中WHERE已经不起作用了,其查询结果等同于以下SQL语句。

SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs

SQL查询代码实现如下:

string sql1 = string.Format(
    "SELECT job_id, job_desc, min_lvl, max_lvl FROM jobs WHERE job_id='{0}'", jobId);

现在我们要通过页面请求的方式,让数据库执行我们的SQL语句,我们要在URL中嵌入恶意表达式1=1(或2=2等等),如下URL所示:

OR '1' = 1'

图3 job表查询结果

现在我们把job表中的所有数据都查询出来了,仅仅通过一个简单的恒真表达式就可以进行了一次简单的攻击。

虽然我们把job表的数据都查询出来了,但数据并没有太大的价值,由于我们把该表临时命名为job表,所以接着我们要找出该表真正表名。

首先我们假设表名就是job,然后输入以下URL:

http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1'or 1=(select count(*) from job)--

等效SQL语句如下:

SELECT       job_id, job_desc, min_lvl, max_lvl 
FROM         jobs 
WHERE      job_id='1'or 1=(select count(*) from job) --'

图4 job表查询结果

当我们输入了以上URL后,结果服务器返回我们错误信息,这证明了我们的假设是错误的,那我们该感觉到挫败吗?不,其实这里返回了很多信息,首先它证明了该表名不是job,而且它还告诉我们后台数据库是SQL Server,不是MySQL或Oracle,这也设计一个漏洞把错误信息直接返回给了用户。

接下假定表名是jobs,然后输入以下URL:

http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1'or1=(select count(*) from jobs) --

等效SQL语句如下:

SELECT       job_id, job_desc, min_lvl, max_lvl 
FROM         jobs 
WHERE      job_id='1'or 1=(select count(*) from jobs) --'

图5 job表查询结果

现在证明了该表名是jobs,这可以迈向成功的一大步,由于我们知道了表名就可以对该表进行增删改操作了,而且我们还可以猜测出更多的表对它们作出修改,一旦修改成功那么这将是一场灾难。

现在大家已经对SQL Injection的攻击有了初步的了解了,接下让我们学习如何防止SQL Injection。

总的来说有以下几点:

1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。

2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。

通过正则表达校验用户输入

首先我们可以通过正则表达式校验用户输入数据中是包含:对单引号和双"-"进行转换等字符。

然后继续校验输入数据中是否包含SQL语句的保留字,如:WHERE,EXEC,DROP等。

现在让我们编写正则表达式来校验用户的输入吧,正则表达式定义如下:

private static readonly Regex RegSystemThreats =
        new Regex(@"\s?or\s*|\s?;\s?|\s?drop\s|\s?grant\s|^'|\s?--|\s?union\s|\s?delete\s|\s?truncate\s|" +
            @"\s?sysobjects\s?|\s?xp_.*?|\s?syslogins\s?|\s?sysremote\s?|\s?sysusers\s?|\s?sysxlogins\s?|\s?sysdatabases\s?|\s?aspnet_.*?|\s?exec\s?",
            RegexOptions.Compiled | RegexOptions.IgnoreCase);

上面我们定义了一个正则表达式对象RegSystemThreats,并且给它传递了校验用户输入的正则表达式。

由于我们已经完成了对用户输入校验的正则表达式了,接下来就是通过该正则表达式来校验用户输入是否合法了,由于.NET已经帮我们实现了判断字符串是否匹配正则表达式的方法——IsMatch(),所以我们这里只需给传递要匹配的字符串就OK了。

示意代码如下:

/// 
/// A helper method to attempt to discover [known] SqlInjection attacks.  
/// 
/// string of the whereClause to check
/// true if found, false if not found 
public static bool DetectSqlInjection(string whereClause)
{
    return RegSystemThreats.IsMatch(whereClause);
}

/// 
/// A helper method to attempt to discover [known] SqlInjection attacks.  
/// 
/// string of the whereClause to check
/// string of the orderBy clause to check
/// true if found, false if not found 
public static bool DetectSqlInjection(string whereClause, string orderBy)
{
    return RegSystemThreats.IsMatch(whereClause) || RegSystemThreats.IsMatch(orderBy);
}

现在我们完成了校验用的正则表达式,接下来让我们需要在页面中添加校验功能。

/// 
/// Handles the Load event of the Page control.
/// 
/// The source of the event.
/// The  instance containing the event data.
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // Gets departmentId from http request.
        string queryString = Request.QueryString["jobId"];
        if (!string.IsNullOrEmpty(queryString))
        {
            if (!DetectSqlInjection(queryString) && !DetectSqlInjection(queryString, queryString))
            {
                // Gets data from database.
                gdvData.DataSource = GetData(queryString.Trim());

                // Binds data to gridview.
                gdvData.DataBind();
            }
            else
            {
                throw new Exception("Please enter correct field");
            }
        }
    }
}

当我们再次执行以下URL时,被嵌入的恶意语句被校验出来了,从而在一定程度上防止了SQL Injection。

展开阅读全文

0 个人打赏
还能输入1000个字符

SQL注入实战————1、MySQL手工注入实战

05-06 阅读数 8410

无意中发现了一个巨牛巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,小白也能学,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家... 博文 来自: Fly_鹏程万里

SQL注入——入门篇

07-09 阅读数 1万+

SQL注入快捷键加粗Ctrl+B斜体Ctrl+I引用Ctrl+Q插入链接Ctrl+L插入代码Ctrl+K插入图片Ctrl+G提升标题Ctrl+H有序列表Ctrl+O无序列表Ctrl+U横线Ctrl+R... 博文 来自: 姑苏城外的江枫_博客

web安全/渗透测试--21--SQL注入(上)

09-15 阅读数 3726

1、漏洞描述所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入... 博文 来自: 随亦的博客

SQL注入攻击常见方式及测试方法

11-04 阅读数 5万+

本文主要针对SQL注入的含义、以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解。适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录、发布等模块的SQL攻击漏洞,至于如何预... 博文 来自: Lambda_Y的博客

sql注入产生的原因以及如何防止?

03-03 阅读数 4222

1.sql注入产生的原因:程序开发过程中不注意书写规范,对sql语句和关键字未进行过滤,导致客户端可以通过全局变量get或者post提交sql语句到服务器端正常运行;2.防止过滤:1).过滤掉一些常见... 博文 来自: living_ren的博客

从零基础认识SQL注入

09-30 阅读数 2万+

SQL注入1.什么是SQL注入看一下下面的案例场景,这是正常情况下的登陆场景:而当我们使用用户名‘:–的时候,密码随便输入也可以登陆成功↓这时候对比两条sql就能发现,其实用户通过在用户名写入的sql... 博文 来自: 你不知道你不知道的事

简单的SQL注入原理

09-19 阅读数 2633

小白学了一点简单的SQL注入,做了点笔记,感觉挺详细,希望能帮助到学习的伙伴。大佬勿喷,有不足多多的指教。实验原理SQL注入攻击是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台SQL... 博文 来自: 天跃

SQL注入原理与解决方法

08-04 阅读数 8709

一、什么是sql注入?1、什么是sql注入呢?        所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前... 博文 来自: jayxu无捷之径的博客

’or 1=1# 初入SQL注入的万能语句

09-23 阅读数 8620

噢,终于知道CTF里面的那些SQL注入题里面,每题基本都有id=1’这个东西,然后就是一串语句后面加个#。现在终于理解了。至于这个东西为什么叫万能语句,继续看吧。在介绍之前,先介绍一下我们一般的登陆过... 博文 来自: weixin_41607190的博客

SQL注入漏洞详解

08-23 阅读数 1万+

目录判断是否存在SQL注入一:Boolean盲注二:union注入三:文件读写四:报错注入floor报错注入ExtractValue报错注入UpdateXml报错注入五:时间盲注六:REGEXP正则匹... 博文 来自: 谢公子的博客

SQL注入原理讲解

09-16 阅读数 2194

本文转自http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1摘要日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开... 博文 来自: 幻染雨停轻的博客

Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

10-24 阅读数 3万+

前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql注入漏洞就是一个。作为一个菜鸟小程... 博文 来自: 曹胜欢

学会了这些技术,你离BAT大厂不远了

08-26 阅读数 4万+

每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道BAT等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术... 博文 来自: 平头哥的技术博文

我花了一夜用数据结构给女朋友写个H5走迷宫游戏

09-21 阅读数 8万+

起因又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而怨气满满!而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有... 博文 来自: bigsai

程序员实用工具网站

09-04 阅读数 12万+

目录1、搜索引擎2、PPT3、图片操作4、文件共享5、应届生招聘6、程序员面试题库7、办公、开发软件8、高清图片、视频素材网站9、项目开源10、在线工具宝典大全程序员开发需要具备良好的信息检索能力,为... 博文 来自: 不脱发的程序猿

别再翻了,面试二叉树看这 11 个就够了~

09-13 阅读数 3万+

写在前边数据结构与算法:不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面... 博文 来自: 一个不甘平凡的码农

sql 注入大全中的大全

10-06 阅读数 75

1.判断有无注入点;and1=1and1=22.猜表一般的表的名称无非是adminadminuseruserpasspassword等..and0<>(selectcount(*)from... 博文 来自: weixin_34250709的博客

GitHub开源的10个超棒后台管理面板

09-21 阅读数 3万+

目录1、AdminLTE2、vue-Element-Admin3、tabler4、Gentelella5、ng2-admin6、ant-design-pro7、blur-admin8、iview-ad... 博文 来自: 不脱发的程序猿

让程序员崩溃的瞬间(非程序员勿入)

09-16 阅读数 14万+

今天给大家带来点快乐,程序员才能看懂。来源:https://zhuanlan.zhihu.com/p/470665211.公司实习生找Bug2.在调试时,将断点设置在错误的位置3.当我有一个很棒的调试... 博文 来自: strongerHuang

SQL Server 数据库学习

08-31 阅读数 3万+

一、认识数据库1、数据库的基本概念2、数据库常用对象3、数据库的组成数据库主要由文件和文件组组成。数据库中所有的数据和对象都被存储在文件中。二、创建数据库1、创建数据库对象资源管理器—数据库——右击—... 博文 来自: 灰太狼的小秘密

分享靠写代码赚钱的一些门路

09-26 阅读数 2万+

作者mezod,译者josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...... 博文 来自: Python之禅的专栏

SQL注入原理

06-16 阅读数 861

什么是sql注入?为什么要sql注入?sql注入(SQLInjection):就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。SQL注... 博文 来自: 你要去相信,没有到不了的明天。

100 个网络基础知识普及,看完成半个网络高手

09-23 阅读数 8万+

1)什么是链接?链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。2)OSI参考模型的层次是什么?有7个OSI层:物理层,数据链路层,网络层,传输层,会话层,表示层和... 博文 来自: 华为云官方博客

Sql注入基本原理

07-29 阅读数 4644

SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,它目前是黑客对数据库进行攻击的最常用手段之一。... 博文 来自: qq_34638225的博客

对计算机专业来说学历真的重要吗?

09-27 阅读数 3万+

我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记... 博文 来自: 启舰

学Linux到底学什么

09-27 阅读数 2万+

来源:公众号【编程珠玑】作者:守望先生网站:https://www.yanbinghu.com/2019/09/25/14472.html前言​我们常常听到很多人说要学学Linux或者被人告知说应该学... 博文 来自: 守望的博客-编程珠玑

世界上最好的学习法:费曼学习法

09-27 阅读数 3万+

你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可... 博文 来自: 程序新视界

SQL(DQL)

07-24 阅读数 16

DQL--数据查询语言(查询不会修改数据库表记录)一、基本查询1.字段(列)控制1)查询所有列SELECT*FROM表名;SELECT*FROMemp;-->其中“*”表示查询所有列2)查询指定... 博文 来自: weixin_34100227的博客

深入理解C语言指针

09-28 阅读数 4万+

一、指针的概念要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。1.1、变量和地址先写一段... 博文 来自: ZackSock的博客

SQL注入原理以及如何避免注入

07-21 阅读数 3

SQL注入:到底什么时候会用到SQL呢?回答是访问数据库的时候,也就是说SQL注入-->直接威胁到了数据源,呵呵,数据库都收到了威胁,网站还能正常现实么?所谓SQL注入,就是通过把SQL命令插入... 博文 来自: dgz41976的博客

总结搜索型手工注入的全过程

07-19 阅读数 1万+

author:鸿鸿本人是小菜,水平有限,但是为了论坛做贡献,还是自己写点原创的东西出来吧。希望大牛看了别笑就好了。。。。========================================... 博文 来自: stilling2006的专栏

SQL注入原理解说,非常不错

06-19 阅读数 7

原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1摘要日前,国内最大的程序猿社区CSDN站点的用户数据库被黑客公... 博文 来自: weixin_34262482的博客

C语言这么厉害,它自身又是用什么语言写的?

09-27 阅读数 2万+

这是来自我的星球的一个提问:“C语言本身用什么语言写的?”换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言的编译器从哪里来?用什么语言来写的?如果是用C语...... 博文 来自: 码农翻身

防止SQL注入攻击-学习笔记

07-18 阅读数 3926

所谓SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应有程序,将(恶意的)SQL命令注入到后台数据库... 博文 来自: guishifoxin的博客

sql注入原理

02-23 阅读数 1789

0x01sql注入原理sql注入漏洞产生的原理是因为服务器对用户输入参数过滤不严格,将含有恶意代码的参数代入数据库查询语句中并执行。0x02sql注入中常用的函数与语法Group_concat():将... 博文 来自: 嘻嘻哈哈

面试官:兄弟,说说基本类型和包装类型的区别吧

09-29 阅读数 2万+

Java的每个基本类型都对应了一个包装类型,比如说int的包装类型为Integer,double的包装类型为Double。基本类型和包装类型的区别主要有以下4点。... 博文 来自: 沉默王二

从一则征婚启事谈起

09-27 阅读数 3905

微博上,很多我熟悉的朋友突然扎堆谈论一个征婚话题,翻了翻前因后果发现是个30来岁,年薪170万阿里p8,不知怎么就犯了众怒了。本来这种八卦话题我一般是不参与的,不过前几天...... 博文 来自: caoz的梦呓

SQL注入语句

07-25 阅读数 3244

一、SQL注入语句账号:Admin密码:123456登录验证语句为select*from表名whereUserName='用户名'andUserPassword='用户密码";的系统可通过以... 博文 来自: 大头的博客

docker学习笔记

10-17 阅读数 5089

docker学习笔记 常用的镜像: docker pull anibali/pytorch:cuda-10.0 Docker是什么? Docker是一个虚拟环境容器,可以将你的开发环境、代... 博文

shell-【技术干货】工作中编写shell脚本实践

09-06 阅读数 1万+

在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点 shell脚本? 在... 博文

挑战10个最难的Java面试题(附答案)【上】

09-10 阅读数 2万+

欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),验证通过后,输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术... 博文

C语言实现推箱子游戏

09-29 阅读数 4万+

很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2... 博文

30秒内便能学会的30个超实用Python代码片段

10-10 阅读数 2万+

许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。 Python流行的部分原因在于简单易学。 本文将简要... 博文

JAVA-快速了解线程池的基本原理

10-16 阅读数 5018

前言 说起线程池大家肯定不会陌生,在面试中属于必问的问题之一,特别是对于高并发有较高要求的企业,基本是核心打分点。网上关于线程池的文章和视频很多,本篇文章旨在帮助大家快速了解和掌握线程池的原理,对于... 博文

漫画 | 外行对程序员误会有多深!

10-11 阅读数 9502

作者:阿波、纯洁的微笑漫画:宁州枪手程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的:程序员都是秃头,秃的越狠越...... 博文

动画:用动画给面试官解释 TCP 三次握手过程

10-12 阅读数 1万+

作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握... 博文

失败程序员的十年总结

10-13 阅读数 7320

十年到底有多长?当我回顾过去的十年,发现好短,可以讲的事情没有几件,而且都是坏事;当我畅想未来的十年,感觉又好长,不知道路怎么走。... 博文

感觉自己不会的东西太多了,不知道如何下手?

10-14 阅读数 1万+

GitHub 8.8k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 8.8k Star 的... 博文

Linux 给我的七个宝贵教训

10-12 阅读数 3142

在日常使用过程中,作为时下主流操作系统之一的 Linux,还存在哪些坑?以及从它的应用过程中,我们还可以挖掘出哪些鲜为人知的奥秘?作者 |Nebojsa.todorov...... 博文

为什么程序员在学习编程的时候什么都记不住?

10-12 阅读数 8185

在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者 |Dylan Mestyanek译者 | 弯月,责编 | 屠敏出品 |...... 博文

成长的第一步是走出舒适区

10-13 阅读数 8038

阅读本文大概需要 2.8 分钟。在温室里呆习惯了,就很难去适应室外环境,在一个圈子呆久了,就会把一切都会当成是理所当然,不想再去适应第二个圈子,即使他们可能更好。很多人觉...... 博文

python爬取网图

10-19 阅读数 5004

#最近新学了爬虫,写了一个爬取一个写真网站的code 网站 代码如下 import requests from bs4 import BeautifulSoup def get_main_urls... 博文

扛住阿里双十一高并发流量,Sentinel是怎么做到的?

10-14 阅读数 7800

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景本文介绍阿里开源限流熔断方案 Sentinel 功能、原理、架构、快速入门以及相关框架比较基本介绍1...... 博文

500行代码,教你用python写个微信飞机大战

10-16 阅读数 1万+

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / ... 博文

唐僧团队要裁员,你会裁谁?

10-15 阅读数 1万+

提问: 西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么? 为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。 高层领导: 观音... 博文

大数据学习之Linux基础

10-18 阅读数 6761

大数据学习之Linux基础 自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令... 博文

史上最全的中高级JAVA工程师-面试题汇总

10-15 阅读数 1万+

史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。... 博文

唏嘘!2019榜单出炉:铁打的Python连续3年第一,它居然跌出前十?

10-15 阅读数 2292

IEEE Spectrum2019年度编程语言排行榜最近刚刚出炉,Python不出意外的又拿了个第一,但是意料之外的是,曾经大火的PHP,居然跌出了前十!PHP曾被大家称...... 博文

redis——相关问题汇总

10-16 阅读数 4379

什么是redis? Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内... 博文

Python实现天气查询功能(外加Excel技巧)

10-16 阅读数 5346

昨天在网上发现了一个非常方便的天气API,就用Python试着用了一下。参数是挺少的,用起来也方便,但是那个城市代码确实是搞了我好长时间。 一、介绍 我们先来看一下实现的程序有什么功能: 功能也是非... 博文

美团面试小感——认知撑起的格局

10-16 阅读数 4851

前两天因准备美团的面试,导致公众号文章断更了一天,今天就以一篇纯干货来弥补大家。美团的整个面试收获颇丰,与大家分享。 好多年没有面试了,为此专门准备了一天。在美团一个下午经历了四个多小时的三轮技... 博文

飞机大战

10-16 阅读数 4607

项目需求: 实现一个简单的飞机大战程序,当消灭掉一个小飞机的时候的5分,当消灭掉一个小蜜蜂的时候有可能火力值增加24也有可能生命值增加1,如果打飞机也就是英雄机和敌人(蜜蜂+小飞机)碰撞之后... 博文

IntelliJ IDEA 超实用使用技巧分享

10-16 阅读数 1万+

前言 工欲善其事 必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这... 博文

只因写了一段爬虫,公司200多人被抓!

10-16 阅读数 5万+

“一个程序员写了个爬虫程序,整个公司200多人被端了。” “不可能吧!” 刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。... 博文

我与CSDN的这十年——笔耕不辍,青春热血

10-20 阅读数 3712

1024程序员的节日就要来了,作者也挤时间写了一篇文章——《我与CSDN的这十年》,分享下程序猿和程序媛的故事,纪念这十年奋斗和感动的日子。十年, 说长不长,说短不短,人生进度条的八分之一,都是青春,... 博文

Java面试之String、StringBuffer和StringBuilder的区别和原理

10-17 阅读数 5465

首先我们先来谈谈String: String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象,即修改了String的引用。 因为String的底层是用数组来存值的... 博文

Nginx反向代理配置

10-17 阅读数 2013

什么是反向代理? 1、有两台服务器A和B属于同一内网段,但是A不通外网,B通外网,客户端C只有外网 2、C想通过B访问A,就需要在服务器B上做反向代理 3、客户端C通过外网与服务器B通信,服务器B通过... 博文

替换Oracle,从阿里巴巴到亚马逊-他们在逃离什么?

10-17 阅读数 1万+

AWS 终于在 2020年前兑现了自己的承诺:彻底替换 Oracle 数据库。这几乎是每年 Oracle Openworld 大会上 Larry Ellision 固定的一个梗,他说 亚马逊在号召用户... 博文

三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!

10-17 阅读数 8714

根据埃文斯数据公司(Evans Data Corporation)2019 最新统计的数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万。但在... 博文

面试官:谈谈你对mysql索引的认识?

10-17 阅读数 3061

引言大家好,我渣渣烟。我曾经写过一篇于是呢,决定再来一个mysql的数据库专题,这篇我们就来谈谈关于索引方面的mysql面试题。还是老规矩,讲的是在Innodb存储引擎下...... 博文

Docker 大势已去,Podman 万岁

10-17 阅读数 1万+

前言郑重声明:本文不是 Podman 的入门篇,入门请阅读这篇文章:再见 Docker,是时候拥抱下一代容器工具了Podman 原来是 CRI-O 项目的一部分,后来被分...... 博文

重学计算机组成原理 - 异常和中断

10-21 阅读数 736

过去这么多讲,我们的程序都是自动运行且正常运行的。自动运行的意思是说,我们的程序和指 令都是一条条顺序执行,你不需要通过键盘或者网络给这个程序任何输入。正常运行是说,我们 的程序都是能够正常执行下去的... 博文

小白学 Python(1):开篇

10-18 阅读数 1812

人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员【臭鸡蛋... 博文

别在学习框架了,那些让你起飞的计算机基础知识。

10-22 阅读数 1万+

我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,... 博文

Tomcat目录结构

10-18 阅读数 2872

文章目录目录结构bin目录conf目录lib目录webapps目录temp目录 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很... 博文

五子棋AI算法(一)

10-19 阅读数 1523

五子棋AI算法第一章——框架的搭建 博文

Spring Boot 2.2 正式发布,大幅性能提升 Java 13 支持

10-18 阅读数 7954

之前 Spring Boot 2.2没能按时发布,是由于 Spring Framework 5.2 的发布受阻而推迟。这次随着 Spring Framework 5.2.0 成功发布之后,Spring... 博文

JVM之内存结构详解

10-18 阅读数 5683

对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。 我... 博文

c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c# c#显示无焦点窗口 c# 类是否继承指定接口

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

你可能感兴趣的:(WebShell)