`
q445862108
  • 浏览: 82989 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Sql注入

 
阅读更多
为了防止SQL注入,iBatis模糊查询时也要避免使用$$来进行传值。下面是三个不同数据库的ibatis的模糊查询传值。
Sql代码 
mysql: select * from stu where name like concat('%',#name #,'%')   
  
oracle: select * from stu where name like '%'||#name #||'%'  
  
SQL Server:select * from stu where name like '%'+#name #+'%    


如:
Sql代码 
<!-- 用途:小二后台查询活动的数目 --> 
    <!-- 频率:1000/天 --> 
    <!-- 维护:刘飞 --> 
    <select id="countActivitySearch" resultClass="java.lang.Long" parameterClass="actDO"> 
        <![CDATA[ 
            select count(id) from activity  
            ]]> 
         
        <dynamic prepend="WHERE"> 
            <isNotNull prepend=" AND " property="name"> 
                name LIKE CONCAT('%', #name#, '%') 
            </isNotNull> 
            <isNotNull prepend=" AND "  property="itemId"> 
                itemId = #itemId# 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemName"> 
                itemName LIKE CONCAT('%', #itemName#, '%') 
            </isNotNull>          
            <isNotNull prepend=" AND " property="status"> 
                status = #status# 
            </isNotNull>  
            <isNotNull prepend=" AND " property="actStatus"> 
                actStatus = #actStatus# 
            </isNotNull>           
            <isNotNull prepend=" AND " property="domain"> 
                domain LIKE CONCAT('%', #domain#, '%') 
            </isNotNull> 
        </dynamic> 
         
    </select> 
     
    <!-- 用途:小二后台查询活动的列表 --> 
    <!-- 频率:1000/天 --> 
    <!-- 维护:刘飞 --> 
    <select id="searchActivityForList" resultMap="actResult" parameterClass="actDO"> 
        <![CDATA[ 
            select * from activity  
        ]]> 
         
        <dynamic prepend="WHERE"> 
            <isNotNull prepend=" AND " property="name"> 
                name LIKE CONCAT('%', #name#, '%') 
            </isNotNull> 
            <isNotNull prepend=" AND "  property="itemId"> 
                itemId = #itemId# 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemName"> 
                itemName LIKE CONCAT('%', #itemName#, '%') 
            </isNotNull>          
            <isNotNull prepend=" AND " property="status"> 
                status = #status# 
            </isNotNull>  
            <isNotNull prepend=" AND " property="actStatus"> 
                actStatus = #actStatus# 
            </isNotNull>           
            <isNotNull prepend=" AND " property="domain"> 
                domain LIKE CONCAT('%', #domain#, '%') 
            </isNotNull> 
        </dynamic> 
         
        <![CDATA[ 
            order by starttime desc, createtime desc 
            limit  
                #startRow#, #perPageSize#    
        ]]> 
    </select> 

不要这样来写:
Sql代码 
<select id="searchActivityForCount" resultClass="java.lang.Long" > 
        <![CDATA[ 
            select count(*) from activity 
            ]]> 
         
        <dynamic prepend="WHERE"> 
            <isNotNull prepend=" AND " property="name"> 
                name LIKE '%$name$%' 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemId"> 
                itemId LIKE '%$itemId$%' 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemName"> 
                itemName LIKE '%$itemName$%' 
            </isNotNull>          
            <isNotNull prepend=" AND " property="status"> 
                status = #status# 
            </isNotNull>  
            <isNotNull prepend=" AND " property="actStatus"> 
                actStatus = #actStatus# 
            </isNotNull>           
            <isNotNull prepend=" AND " property="domain"> 
                domain LIKE '%$domain$%' 
            </isNotNull> 
        </dynamic> 
    </select> 
     
    <select id="searchActivityForList" resultMap="actResult" parameterClass="actDO"> 
        <![CDATA[ 
            select * from activity  
        ]]> 
         
        <dynamic prepend="WHERE"> 
            <isNotNull prepend=" AND " property="name"> 
                name LIKE '%$name$%' 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemId"> 
                itemId LIKE '%$itemId$%' 
            </isNotNull> 
            <isNotNull prepend=" AND " property="itemName"> 
                itemName LIKE '%$itemName$%' 
            </isNotNull>          
            <isNotNull prepend=" AND " property="status"> 
                status = #status# 
            </isNotNull>  
            <isNotNull prepend=" AND " property="actStatus"> 
                actStatus = #actStatus# 
            </isNotNull>           
            <isNotNull prepend=" AND " property="domain"> 
                domain LIKE '%$domain$%' 
            </isNotNull> 
        </dynamic> 
         
        <![CDATA[ 
            order by starttime desc, createtime desc 
            limit  
                #startRow#, #perPageSize#    
        ]]> 
    </select> 
分享到:
评论

相关推荐

    sql注入讲解ppt.pptx

    SQL 注入基础知识点总结 SQL 注入是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法...

    SQL 注入天书.pdf

    SQL注入是一种常见的网络安全漏洞,发生在应用程序使用用户输入的SQL代码直接构建数据库查询时。当攻击者能够通过输入恶意SQL语句来控制或篡改数据库查询,他们就能获取敏感信息、修改数据甚至完全控制系统。《SQL...

    SQL注入全面讲解技术文档

    SQL注入是一种常见的网络安全威胁,它利用了Web应用程序中对用户输入数据处理的不足,使得攻击者能够注入恶意的SQL代码,以获取未经授权的数据或者控制数据库服务器。以下是对SQL注入漏洞的全面讲解,包括其原理、...

    SQL注入攻击实验报告

    ### SQL注入攻击实验报告知识点详解 #### 一、实验背景及目的 - **实验背景**:随着互联网技术的发展,Web应用程序越来越广泛地应用于各种场景之中。然而,由于开发者对安全性的忽视,使得许多Web应用程序存在安全...

    C#防SQL注入

    C#防SQL注入 C#防SQL注入是指在C#程序中防止SQL注入攻击的方法。SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在输入字段中.inject恶意SQL代码,来访问、修改或删除数据库中的数据。为了防止SQL注入,C#...

    SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

    SQL注入是一种严重的安全威胁,它允许攻击者通过在应用程序的输入字段中插入恶意SQL代码来执行未经授权的数据库操作。攻击者通常寻找没有适当验证和过滤的用户输入,然后利用这些漏洞来构造能改变原始SQL语句意图的...

    DB2数据库SQL注入手册1

    DB2数据库SQL注入手册 DB2数据库SQL注入手册是指在使用DB2数据库时,如何检测和防止SQL注入攻击的一份指南。SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在输入字段中 inject恶意SQL代码来访问或控制...

    SQL注入漏洞全接触.ppt

    "SQL注入漏洞全接触"知识点总结 一、 SQL注入漏洞的定义和原理 * SQL注入漏洞是指攻击者通过构造特殊的输入,来获取或修改服务器上的敏感数据。 * SQL注入漏洞的原理是从客户端提交特殊的代码,从而收集程序及...

    sql注入网站源码

    SQL注入是一种常见的网络安全漏洞,主要出现在使用动态SQL语句构建数据库查询的应用程序中。这个"sql注入网站源码"提供了一个具有SQL注入漏洞的ASP(Active Server Pages)网站实例,对于学习如何检测、防范和修复这...

    SQL注入工具-御剑

    【描述】:“SQL注入工具-御剑SQL注入工具-御剑SQL注入工具-御剑SQL注入工具-御剑SQL注入工具-御剑SQL注入工具-御剑” 描述中的重复部分强调了御剑作为SQL注入工具的核心属性。SQL注入是黑客通过构造恶意的SQL语句...

    SQL手工注入大全:包含各种类型的SQL注入,实现手工注入的乐趣,此资源你值得拥有。

    SQL手工注入大全:包含各种类型的SQL注入,实现手工注入的乐趣,此资源你值得拥有。 此资源包含:宽字节注入、SQL手工注入漏洞测试(Oracle数据库)、SQL手工注入漏洞测试(Sql Server数据库)、SQL手工注入漏洞测试...

    机器学习检测SQL注入.zip

    机器学习检测SQL注入# ML-for-SQL-Injection机器学习检测SQL注入本项目是使用机器学习算法来分类SQL注入语句与正常语句:使用了SVM,Adaboost,决策树,随机森林,逻辑斯蒂回归,KNN,贝叶斯等算法分别对SQL注入语句...

    sql注入字典fuzz

    ### SQL注入字典Fuzz详解 #### 一、引言 在网络安全领域,SQL注入攻击是一种常见的威胁方式,它利用数据库应用系统中的漏洞,通过恶意构造的SQL语句来获取敏感数据或对数据库进行非法操作。为了有效地检测和防范...

    最新ASP通用防SQL注入代码

    从标签"防注入"、"最新ASP SQL注入代码"、"最新ASP通用防SQL注入代码"我们可以看出,这个压缩包文件的核心内容是关于防止ASP应用程序遭受SQL注入攻击的代码示例,它适用于各种ASP应用场景。 在压缩包内的文件"通用...

    net中sql注入式攻击与防范秘籍

    ### .NET中SQL注入式攻击与防范秘籍 #### SQL注入概述 SQL注入是一种常见的网络安全攻击方式,攻击者通过在数据库查询中插入恶意SQL语句,以达到非法获取数据、篡改数据甚至控制整个数据库的目的。对于使用.NET...

    SQL注入过滤 (Java版)

    在IT行业中,SQL注入是一种常见的安全威胁,攻击者通过输入恶意的SQL代码来获取、修改、删除数据库中的敏感信息。为了防止这种情况发生,开发者需要在应用程序中实施有效的防御策略,其中一种方法就是使用过滤器...

    Python中防止sql注入的方法详解

    ### Python中防止SQL注入的方法详解 #### 前言 SQL注入是一种常见的网络安全攻击手段,攻击者通过在输入数据中嵌入恶意SQL代码,利用应用程序的漏洞执行非法操作,如篡改、删除或检索敏感数据等。对于使用Python...

    pangolinsdl—sql注入工具

    **SQL注入工具——PangolinsDL详解** SQL注入是一种常见的网络安全漏洞,它允许攻击者通过输入恶意的SQL代码来操纵或获取数据库中的敏感信息。针对这种威胁,开发者和安全研究人员常常使用SQL注入工具来进行测试和...

    SQL注入攻击与防御技术白皮书.pdf

    SQL注入攻击与防御技术白皮书.pdf 本文档主要介绍了SQL注入攻击的原理、方式、危害及防御措施,旨在帮助读者更好地理解和防御这种常见的数据库漏洞攻击方式。 1.SQL注入攻击简介 SQL注入攻击是一种针对数据库的...

    DVWA之SQL注入详解(包含知识点)

    SQL注入是网络安全领域中的一种常见的攻击手段,它允许攻击者通过在应用程序的输入参数中插入恶意的SQL代码片段,从而在数据库服务器上执行未授权的查询或操作。这种攻击方法对数据库安全构成了极大的威胁,因此了解...

Global site tag (gtag.js) - Google Analytics