【问题标题】:is this sql injection error?这是sql注入错误吗?
【发布时间】:2015-01-07 06:31:25
【问题描述】:

我想知道这是 sql 注入错误还是什么? 那里有什么分贝? mssql ?

发生数据库错误

Error Number: 1054
Unknown column '20and' in 'where clause'

查询 :-

select * from static_info where main_id=60%20and 
and language_code='az' order by id desc

地点:-

Filename: /home/test/public_html/controllers/welcome.php
Line Number: 115

【问题讨论】:

  • 您在下面的 cmets 中提供的链接,以及出现的错误消息是代码编写不佳的标志,并且在 PHP 应用程序中,编写不佳的数据库代码通常容易受到注入攻击。但是没有办法仅仅根据这里提供的内容来判断。阅读 PDO(如下面其他人的建议)并编辑问题以包含welcome.php 的相关部分。到那时,人们可能会更好地为您提供帮助。
  • 回答你的问题,是的,它看起来确实像 sql 注入。你应该知道的数据库上的答案。
  • 您的意见是什么?

标签: php mysql sql sql-server code-injection


【解决方案1】:

字符列需要使用单引号

select * from static_info where main_id='60%20and' and language_code='az' 
order by id desc

【讨论】:

  • 表示没有sql注入警告?
  • 我想知道这个sql注入是否?
  • 这不是 SQL 注入警告。这是关于无效列名的错误。但是,您可以使用带参数的存储过程并使用 sp_executesql 执行它以避免 sql 注入
  • 不,@lenonCon 存在 sql 注入漏洞。请使用准备好的查询。请参阅 php 文档中的 PDO。
  • nidavh.org/news_index/60%20and请看这里怎么做sql注入??
【解决方案2】:

他们正在为框架使用 Codeigniter,

您发布的错误只是告诉您不存在 20and 字段,

这只是一个404 Not Found 之类的错误,您尝试使用的符号将是escape

这是防止 SQL 注入的一种方法,还有很多。

如果您尝试进行 SQL 注入,则会收到以下错误:

An Error Was Encountered

The URI you submitted has disallowed characters.

【讨论】:

    【解决方案3】:

    是的,这可以说是sql注入,因为用户可以从UTL访问您的数据库,用户可以轻松地在数据库中执行查询并损害您的数据库,如果您注意到[link]http://nidavh.org/news_index/1, 这将作为“select * from static_info where main_id=1 ...”执行,我可以通过 id 查看静态页面。希望你明白我的意思

    你应该使用参数化查询来防止sql注入

     Select * from TableName where Columnname1='Your Paremeters' and Columnname2='Your Parameters'
    

    【讨论】:

    猜你喜欢
    • 2016-05-13
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    相关资源
    最近更新 更多