SQL注入zhe

80 阅读1分钟

SQL注入原理

SQL 注入也叫作 SQL Injection,它指的是将非法的 SQL 命令插入到 URL 或者 Web 表单中进行请求,而这些请求被服务器认为是正常的 SQL 语句从而进行执行。也就是说,如果我们想要进行 SQL 注入,可以将想要执行的 SQL 代码隐藏在输入的信息中,而机器无法识别出来这些内容是用户信息,还是 SQL 代码,在后台处理过程中,这些输入的 SQL 语句会显现出来并执行,从而导致数据泄露,甚至被更改或删除。

防止SQL注入

需要对用户提交的内容进行验证,以防止 SQL 注入。当然很多时候我们都在使用编程框架,这些框架已经极大地降低了 SQL 注入的风险,但是只要有 SQL 拼接的地方,这种风险就可能存在。

代码规范性对于 Web 安全来说非常重要,尽量不要采用直接拼接的方式进行查询。同时在 Web 上线之后,还需要将生产环境中的错误提示信息关闭,以减少被 SQL 注入的风险。此外我们也可以采用第三方的工具,比如 SQLmap 来对 Web 应用进行检测,以增强 Web 安全性。

使用sqlmap -u来指定注入测试的 URL,使用--current-db来获取当前的数据库名称,使用--current-user获取当前的用户信息,具体命令如下:

python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --current-db --current-user

此文章为4月Day29学习笔记,内容来源于极客时间《SQL必知必会》