【问题标题】:Sanitize Input for UniData清理 UniData 的输入
【发布时间】:2010-12-11 14:54:51
【问题描述】:

谁能提供一个功能来清理 UniData 查询的输入?或者提供要删除的内容列表?

【问题讨论】:

    标签: code-injection sanitization unidata u2 uniquery


    【解决方案1】:

    这是 UniQuery 保留的字符列表:

     " double quote
     ' apostrophe (single quote)
     / forward slash
     [ left square bracket
     \ back slash
     ] right square bracket
     ^ caret
    

    您可以编写一个接受字符串的快速函数,为这些字符中的每一个执行SWAP--您可以与 ISO 8859-1 十进制代码交换(例如,] 与 ])--并返回经过清理的字符串。

    【讨论】:

      【解决方案2】:

      除了 Rob Sobers 的答案之外,还寻找三重 .'s/ 这些可以用作通配符,具体取决于您运行的模式,与 [ 和 ] 非常相似。

      编辑评论:

      我面前没有实例来测试它,但我相信您可以通过在 VOC 文件的“UOLOGIN”段落中将 ECLTYPE 显式设置为“P”来更改它。

      UOLOGIN 就像登录。首次创建会话时调用它。区别在于 UniObjects 会话调用 UOLOGIN

      【讨论】:

      【解决方案3】:

      使用 CONVERT 一次性删除单个非法字符,然后使用 SWAP 删除非法多字符串。

      在其他答案的基础上,您会得到:

      CONVERT ( '"' : "'/[\]^" ) TO "" IN USER.DATA
      SWAP "..." WITH "" IN USER.DATA
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        • 2012-10-15
        • 2011-07-27
        • 2015-11-10
        • 2018-02-22
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多