`
zhys513
  • 浏览: 26570 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

ORACLE存储过程判断非法字符

阅读更多
---------------------------调用方法

        --验证非法字符
        isMg := fun_issensitivity(v_arr);
        if not isMg then
             v_sendmsg  := '很好,你的信息是正常的。';
        else
             v_sendmsg := '对不起,您的信息含有敏感字,请修改后再发!';
        end if;

---------------------------中间过程

create or replace function fun_issensitivity(arr in  splitlongstr) return boolean is
  Result          boolean;
  i               number;
  v_mg_msg        varchar2(4000);
begin
  i:=1;
  Result:=false;
  while (i<=arr.count) loop
        syn_sp_unlawful(arr(i),v_mg_msg);
        v_mg_msg:=replace(v_mg_msg,' ','');
        if v_mg_msg='0' then
            null;
        else
            Result:=true;
            exit;
        end if;
        i:=i+1;
  end loop;
  return(Result);
end fun_issensitivity;

--------------------------敏感字符判断过程

create or replace procedure sp_unlawful
(
    in_msg in varchar2,
    out_msg out varchar2
)   is
/*
    敏感字符判断过程

*/

    v_Result varchar2(1024);
    v_location number;
    v_word varchar2(1024);
    v_i number;

    cursor c_unlawful is
        select  msg
        from word_unlawful
        where is_valid=1;

begin
    v_i:=0;
    open c_unlawful;
    loop
        fetch c_unlawful into v_word;
        exit when c_unlawful%notfound;
        select instr(in_msg,v_word) into v_location
         from dual;
        if v_location>0 then
            v_i:=v_i+1;
            v_Result:=v_Result||','||v_word;
        end if;
    end loop;
    close c_unlawful;
    if v_i>0 then
        out_msg:=ltrim(v_Result,',');
    else
        out_msg:='0';
    end if;
end sp_unlawful;

------------------------------创建收集的非法字符列表

-- Create table
create table WORD_UNLAWFUL
(
  MSG      VARCHAR2(100) not null,
  IS_VALID NUMBER(1) not null,
  INS_DATE DATE default sysdate not null
);
-----------------------------需要非法字符库的请到附件下载
 

 

 

 来源:优特产     个人博客:优特品

0
0
分享到:
评论

相关推荐

    oracle身份证验证函数

    通过上述详细的分析可以看出,`Func_checkIdcard`函数综合运用了Oracle数据库的各种功能,包括字符串处理、数学运算以及条件判断等,实现了对中国居民身份证号码的有效验证。这个函数不仅能够处理不同长度的身份证...

    oracle学习总结

    除了表,Oracle还支持其他多种数据库对象,如视图(View)、索引(Index)、序列(Sequence)、同义词(Synonym)、存储过程(Procedure)和函数(Function)。这些对象丰富了数据库的功能,提高了数据的查询效率和...

    oracle常见Exception

    在Oracle数据库管理与应用开发过程中,会遇到各种各样的异常情况,这些异常往往会影响到数据处理的准确性以及系统的稳定性。为了更好地理解和处理这些异常,本篇文章将详细介绍Oracle中常见的几种异常及其解决方案。...

    java实现oracle数据库备份.pdf

    为了简化备份过程并提供更友好的用户界面,可以利用 Java 编程语言结合 Oracle JDBC 驱动来实现数据库备份的功能。下面详细介绍该方案的具体实现步骤和技术要点。 #### 三、技术实现思路与流程 1. **构建用户界面*...

    判定一个字符串是否为有效时间的函数

    在IT领域,尤其是在数据库管理和数据处理中,常常需要验证输入的时间字符串是否符合特定的时间格式,以便正确解析和存储。这个任务可以通过编写一个函数来实现,标题提到的"判定一个字符串是否为有效时间的函数"就是...

    PL_SQL用户指南与参考.doc

    本地字符型(NCHAR和NVARCHAR2)用于存储Unicode字符数据,支持多字节字符集。 **4、LOB类型** 大型对象(LOB)类型用于存储大量的文本或二进制数据,包括CLOB、BLOB等。 **5、布尔类型** 尽管标准SQL不支持布尔...

    三种数据库的 SQL 注入详解

    Oracle 数据库提供了一个强大的存储过程语言 PL/SQL,可以让攻击者执行恶意代码,从而获取更多的数据或者更大的权限。 MySQL 利用 MySQL 的信息_schema 注入 MySQL 数据库提供了一个信息_schema 库,包含了数据库的...

    SQL注入攻击和防护技术.pdf

    防范PL/SQL注入的策略与SQL注入类似,但需考虑Oracle特有的安全特性,如存储过程的安全性设置和权限管理。 总的来说,理解和防范SQL注入攻击是保护数据库安全的关键。企业应实施严格的安全策略,进行代码审查,加强...

    006-Web安全基础2 - 注入漏洞.pptx

    2. 对用户输入进行严格的验证和过滤,避免非法字符。 3. 避免显示详细的错误信息,以免泄露数据库信息。 4. 限制数据库用户的权限,仅赋予执行所需操作的最小权限。 5. 定期进行安全审计和漏洞扫描,及时发现并修复...

    中软国际面试题

    - **非法标识符示例**:以数字开头,包含特殊字符(除下划线和美元符号外),或使用保留关键字作为标识符都是不合法的。 ### 14. EJB Bean类型 - **Session Bean**:用于实现业务逻辑,可以是无状态的或有状态的。...

    PL-SQL用户指南与参考(译)

    PL/SQL支持多种字符集,可以根据实际需要选择合适的字符集来存储和处理数据。 ##### 二、词法单元 **1、分隔符** PL/SQL使用特定的符号作为分隔符,如逗号用于分割列表中的项目。 **2、标识符** 标识符用于命名...

    中软国际面试题.doc

    19. 合法标识符:A、B、D和E是合法的,C中的`*`是非法字符。 20. EJB使用的Bean类型: - A. SessionBean - B. EntityBean - C. MessageDrivenBean 21. EJB的部署文件:A.ejb-jar.xml是EJB的部署描述符。 以上...

    sql注入入门教程(附源码分析)

    - 对用户输入进行过滤,避免非法字符进入SQL语句。 - 使用预编译语句或存储过程等技术,确保数据和SQL命令分离。 #### 二、SQL盲注初探 1. **盲注定义** - 盲注是一种特殊的SQL注入攻击,攻击者无法直接看到...

Global site tag (gtag.js) - Google Analytics