本文目录一览:
- 1、存储过程sql语句拼合有错,但不知道怎么改,希望帮忙改一下。代码如下:
- 2、创建存储过程mtcsr,统计某天超市的纯收入,并将纯收入的值作为输出参数输出。提示:使用游标
- 3、如何避免XSS攻击和SQL注入
- 4、mybatis 里头,怎么用存储过程分页
- 5、如何实现php的安全最大化?怎样避免sql注入漏洞和xss跨站脚本攻击漏洞
存储过程sql语句拼合有错,但不知道怎么改,希望帮忙改一下。代码如下:
随便看一下你存储过程中的一处:三年级学生那句
CAST(substring(RXNY,1,4) AS INT)+3 = substring('+@tjny+',1,4)
CAST(substring(RXNY,1,4) AS INT)+3 得到一个整数
substring('+@tjny+',1,4)得到一个字符串
能比较么?能判等么?
很明显不是一个正确的布尔表达式嘛
创建存储过程mtcsr,统计某天超市的纯收入,并将纯收入的值作为输出参数输出。提示:使用游标
ALTER proc [dbo].[mtcsr] @riqi datetime,@csr money output
as
declare @spbh varchar(20),@sl numeric(10,2),@jinhuo money,@msr money
set @jinhuo=0
declare you1 SCROLL cursor for --① 声明游标
select spbh,xssl
from jxxs,xsd
where jxxs.xsdh=xsd.xsdh and
year(xssj)=year(@riqi) and month(xssj)=month(@riqi) and day(xssj)=day(@riqi) for read only
open you1 --② 打开游标
if @@error0
print '游标打开不成功'
else
begin
fetch next from you1 into @spbh,@sl --③ 从游标的结果集中读取数据
while @@fetch_status=0 --④ 对游标中的数据逐行操作
begin
set @jinhuo=@jinhuo+(select @sl*jj from rkd where spbh=@spbh)
fetch next from you1 into @spbh,@sl
end
end
close you1 --⑤ 关闭和释放游标
deallocate you1
select @msr=sum(yfk)
from xsd
where year(xssj)=year(@riqi) and month(xssj)=month(@riqi) and day(xssj)=day(@riqi)
set @csr=@msr-@jinhuo
如何避免XSS攻击和SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
防护
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
mybatis 里头,怎么用存储过程分页
用/[code/]包裹了,被吃了一部分。
select id="plusElectricCoupon" parameterMap="electricCouponParam"
resultMap="simpleRes" statementType="CALLABLE"
{CALL
p_b2c_crd_xs_log_ykt_del(#{kh},#{dh},#{str},#{djlx},#{xsrq},#{xssj})}
/select
如何实现php的安全最大化?怎样避免sql注入漏洞和xss跨站脚本攻击漏洞
使用php安全模式
服务器要做好管理,账号权限是否合理。
假定所有用户的输入都是“恶意”的,防止XSS攻击,譬如:对用户的输入输出做好必要的过滤
防止CSRF,表单设置隐藏域,post一个随机字符串到后台,可以有效防止跨站请求伪造。
文件上传,检查是否做好效验,要注意上传文件存储目录权限。
防御SQL注入。
避免SQL注入漏洞
1.使用预编译语句
2.使用安全的存储过程
3.检查输入数据的数据类型
4.从数据库自身的角度考虑,应该使用最小权限原则,不可使用root或dbowner的身份连接数据库。若多个应用使用同一个数据库,也应该为数据库分配不同的账户。web应用使用的数据库账户,不应该有创建自定义函数,操作本地文件的权限。
避免XSS跨站脚本攻击
1.假定所有用户输入都是“邪恶”的
2.考虑周全的正则表达式
3.为cookie设置HttpOnly,防止cookie劫持
4.外部js不一定可靠
5.出去不必要的HTML注释
6. 针对非法的HTML代码包括单双引号等,使用htmlspecialchars()函数。