sql脚本太大怎么执行

随着web应用开发的发展,有很多的程序员进入到这个职业中,可是这批人的技能水平和编程经历参差不齐,很多人在编写代码的时分,没有对用户输入的参数进行合法性校验,使得这成为了一个潜在的安全隐患。假如遇到技能高手,发现这个问题,他能够提交一段数据库查询脚本,获取对自己想要的数据,这就是咱们说的sqlInjection,即sql注入。

一布景
某高校开发了一个网课体系,学生需在该体系中选课并完结学习,数据库中有一张表course,这张表存放着每个学生的选课信息及完结状况,详细规划如下:
数据如下:
本体系中数据库采用MySQL,经过数据库驱动Jdbc对数据库进行操作。
该体系供给了一个功用查询指定学生的课程完结状况的API接口,代码如下。
二注入进犯演示
1.正常状况下要查询一个学生的选课及完结状况,咱们只需要传递该学生对应的ID即可。
这个sql脚本很简单,如下:
2.看起来好像没有问题对吧,可是你信不信我经过这个接口能够拿到一切学生的数据,不信?要完成很简单,只需保证这条sql脚本where条件为真就能够了,如下脚本:
详细怎样做大呢?
也很简单,咱们只需要在请求该接口的时分将studendId设置为4or1=1,这样这条sql的where条件就恒真了,sql也就等同于下面这样
请求结果如下,咱们拿到了这张表的一切数据
3.查询mysql版本号,运用union拼接sql
unionselect1,1,version(),1
4.查询数据库名
unionselect1,1,database(),1
5.查询mysql当前用户的一切库
unionselect1,1,(SELECTGROUP_CONCAT(schema_name)FROMinformation_schema.schemata)schemaName,1
经过上面的演示你有何感想?后背有没有阵阵发凉?
这儿恐惧不仅仅是能够获取到你的一切数据,更可怕的是他还可对你的数据库进行更新、删除(删库、删表)等等操作。
三如何防止sql注入
1.代码中让sql预编译是最佳的防止sql注入进犯的方案
这样咱们传进来的参数4or1=1就会被当作是一个student_id,所以就不会呈现sql注入了。
2.承认每种数据的类型,比如是数字,数据库则有必要运用int类型来存储
3.规则数据长度,能在一定程度上防止sql注入
4.严厉限制数据库权限,能最大程度减少sql注入的损害
5.防止直接呼应一些sql反常信息,sql发生反常后,自定义反常进行呼应
6.过滤参数中含有的一些数据库关键词.

sql

sql脚本太大怎么执行

我把一个数据库的架构及数据都已脚本的方法复制下来,再去新建一个数据库想把脚本执行一下,但提示如下过错:
问题描绘:
当客户服务器不允许直接备份时,往往通过导出数据库脚本的方法来部署-复原数据库,
但是当数据库导出脚本很大,用MicrosoftSQLServerManagementStudio执行脚本时,往往会遇到“内存不足”的提示。
解决办法:
用微软自带的sqlcmd东西,能够导入执行。以SQLServer2008R2版本为例:
第一步:Win+R键入:cmd命令,敞开命令行东西;
第二步:键入:cdC:ProgramFilesMicrosoftSQLServer100ToolsBinn(具体目录路径跟你装置的SQL方位有关,自己能够百度如何查询所装数据库的装置方位)
第三步:键入:sqlcmd-S.-Usa-P123-dtest-idata.sql
参数说明:-S服务器地址-U用户名-P暗码-d数据库名称-i脚本文件路径
服务器地址能够写.比较轻松,也可写(local)或者IP地址

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章