如题

解决方案 »

  1.   

    一般不直接传SQL语句,
    大多是传变量,
    你直接传SQL语句就意味着你在外意拼接了,存在注入漏洞,你可以通过字符串过滤的方式尽量减少这方面的可能。。
      

  2.   

    不会有注入问题,因为存储过程只是把它当普通字符串。
    当然,如果你把sql语句传入存储过程是为了exec执行它,那会有注入危险。
      

  3.   

    我们公司有哥们开发一个类似 SQL server 查询分析器的东西(web版)的,是可以传sql语句的.
      

  4.   

    直接传SQL语句???
    那你还用存储过成干什么啊!
    拼接后ado不比你哪个还方便
      

  5.   

    exec是DDL语言效率很低的。
    另外你很要保证你的sql字符串的合法性,这不是给自己找麻烦呢吗
    建议换一下思路吧
      

  6.   

    那要怎样才能起到预编译作用呢?
    根据上面各回复的意思,是不是可以这样理解:凡传入参数并用了exec的都起不到预编译结果。
      

  7.   

    接上:是不是凡传入参数并用exec的,如果不对传入的参数进行过滤,是不是也不安全,因为可以在参数里加入做手脚
      

  8.   

    不安全,应为是拼接的动态sql语句容易被注入
      

  9.   

    不安全,在画面拼sql可能已经被注入了,需要的可能是对关键字进行过滤。
      

  10.   


    老早有现成的非常出色的类似phpmyadmin 这样的 d/b web工具:http://www.codeplex.com/SqlWebAdmin