标签: sql-injection

喜欢动态查询

我想like在动态参数化查询中使用关键字.我想保护我的查询免受SQL注入,所以我不想传递值,而是我想在执行查询时传递我的标准,

有没有办法可以做到这一点?

SELECT 
  ComposeMail.ID,
  ComposeMail.DateTime, 
  ComposeMail.Subject, 
  ComposeMail.CreatedBy, 
  ComposeMail.ReceiverStatus,
  Users.Name,
  ROW_NUMBER() OVER(ORDER BY '+ @p_SortExpression +') AS Indexing
FROM 
  ComposeMail 
INNER JOIN
  Users
ON
  ComposeMail.CreatedBy = Users.ID
WHERE 
  (ToReceipientID=@p)
  AND (
    ReceiverStatus=3 
    OR ReceiverStatus=4
  )
  AND (
    (Subject Like ''%' + @p3 + '%'') 
    OR (Body Like ''%' + @p3 + '%'') 
    OR (Name Like ''%' + @p3 + '%'')
  )
Run Code Online (Sandbox Code Playgroud)

这是我的动态查询字符串.我不想在这里传递值.

sql sql-injection dynamic

1
推荐指数
1
解决办法
4167
查看次数

这个查询安全吗?

可能重复:
在PHP中停止SQL注入的最佳方法

我已经看到一些使用称为PDO的东西来使sql-infection或其他使用real_escape的查询安全的例子,但它们似乎都是不完整的或承担一些知识.所以我问,采取这个简单的更新查询,并使其从sql-injection安全.

function updateUserName($id,$first,$last)
{
    $qry = 'UPDATE user SET first = "'.$first.'", last = "'.$last.'" WHERE id = '.$id;
    mysql_query($qry) or die(mysql_error());
}
Run Code Online (Sandbox Code Playgroud)

php security sql-injection

1
推荐指数
1
解决办法
1719
查看次数

我使用的是mysql_real_escape_string吗?

这是正确的使用方式mysql_real_escape_string吗?我正在使用,$GET但是一位朋友告诉我用real_escape_string让它更安全:

$id = intval($_GET['id']);

$result = mysql_query("SELECT * 
                         FROM products 
                        WHERE id = $id") or die("err0r");

if(!$result) mysql_real_escape_string($id); {
Run Code Online (Sandbox Code Playgroud)

php mysql sql sql-injection

1
推荐指数
1
解决办法
5197
查看次数

Sql注入漏洞

我不是某种hax0r左右,但我的老板有一个网站,我告诉他,它很容易受到SQL注入攻击.然后他回答说这不是危险,因为所有信息都是公开的; 所以我告诉他,有可能放弃桌子.

通常DROP表命令有效,有人可以告诉我为什么不在这种情况下?注意:这个数据库仅存储新闻,而不是重要信息!

news.php?id=-99%20union%20all%20select%201,2,3,4,5%20from%20information_schema.columns%20where%20table_schema=0x656e6469616d615--
Run Code Online (Sandbox Code Playgroud)

请不要回复hax0r-hate评论,如果我想知道如何破解我会在irc频道,而不是在这里.

编辑:如果他从数据库编辑安全,我认为他是对的.他可以透露sql查询,但这会失去向他展示危险的目的.

php sql security sql-injection

1
推荐指数
1
解决办法
469
查看次数

是什么让PDO比普通的mysql更安全?

一次又一次我在Stackoverflow上读到我应该使用PDO来访问MySQL,因为它更安全.我最近使用一些在线教程将一些select和insert语句更改为PDO,并发现它们与我的原始代码非常相似.这让我觉得也许我错过了一些东西.

那么,我的问题是what makes PDO safer than normal mysql?有什么能让这些例子更安全吗?

编辑:我已粘贴下面的插入代码.如果您能看到一些让它更安全的方法,请告诉我.

include 'dataB3S3.php';

try {
        $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
        /*** connect to DB ***/


        /*** INSERT data ***/
        $count = $dbh->exec("INSERT INTO $table(`instance` ,`uid`,`teid`) VALUES (NULL,'$userID','$teid')");

         /*** display the id of the last Auto INSERT ***/
        $lastInsertValue=$dbh->lastInsertId();

        /*** close the database connection ***/
        $dbh = null;  
}
Run Code Online (Sandbox Code Playgroud)

mysql pdo sql-injection

1
推荐指数
1
解决办法
406
查看次数

在mysql语句中返回tick做什么?

在这样的声明中;

$sql = "SELECT distinct `term`,count(*) as count 
FROM {$temp_table_name} 
group by `term` order by count DESC";  
Run Code Online (Sandbox Code Playgroud)

在字段名称'term'周围使用后退字符(`)给我买什么?出于性能原因,是否使用了后退?或者它是否适用于某种SQL注入保护?

注意:在我提交问题之后,我意识到反引号字符没有显示在字段名称'term'周围 - 就在stackoverflow上.我不知道如何让它出现在问题体中.

mysql sql-injection

1
推荐指数
1
解决办法
2868
查看次数

这个SQL查询是否可以安全地注入?

下面的代码是用php编写的:

$user = addslashes($_POST['user']);
$pwd = addslashes($_POST['pwd']);

$query = "SELECT * FROM userdata WHERE UserName='$user' AND Password=PASSWORD('$pwd')";
Run Code Online (Sandbox Code Playgroud)

然后将查询发送到mysql还有什么我需要处理的吗?

请指出.

php mysql sql security sql-injection

1
推荐指数
2
解决办法
738
查看次数

SQL查询作为参数发送的危险?

基本问题.如果我有一个表格要求用户提供他们的姓名,电子邮件和评论,我将这些条目存储在数据库中...如果有人输入SQL查询会发生什么情况,例如:

DROP tablename
Run Code Online (Sandbox Code Playgroud)

在评论部分.

@Name,
@Email,
@Comments

INSERT INTO mytable (Name, Email, Comments) VALUES (@Name, @Email, @Comments)
Run Code Online (Sandbox Code Playgroud)

是否存在SQL注入的风险或者我是否完全安全?

SQL Server 2008存储过程来处理插入.

sql sql-server sql-injection database-security

1
推荐指数
1
解决办法
127
查看次数

在.htaccess中阻止SQL注入的危险是什么?

我一直在寻找我的Wordpress网站上的防御.不出所料,有关此主题的大量文档.两个更好的指南似乎在这里:

http://moz.com/blog/the-definitive-guide-to-wordpress-security

显然:http://codex.wordpress.org/Hardening_WordPress

我想加强我对SQL注入的防御,因为我以前的网站成为这种攻击的牺牲品,并证明几乎不可能再次清理.

从许多其他网站和类似指南上发表的评论来看,似乎有很多人不同意每一种实现这一目标的方式,因为它已经发誓.

我正在考虑将下面的内容(在第一个提到的网站上找到)添加到我的网站,但似乎没有谈论编辑.htaccess文件的明显危险之外进行此类操作的危险.

通过添加此功能,我可以期望松散或妥协的功能,如果没有,为什么这种代码不包含在基本的Wordpress安装中?如果添加这种东西没有害处,为什么不是每次安装都包含它,并允许知道他们正在做什么的开发人员在必要时删除它?

    ## SQL Injection Block ##
<IfModule mod_rewrite.c>
RewriteBase /
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ - [F,L]
RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag\= [NC,OR]
RewriteCond %{QUERY_STRING} ftp\:  [NC,OR]
RewriteCond %{QUERY_STRING} http\:  [NC,OR]
RewriteCond %{QUERY_STRING} https\:  [NC,OR]
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)||ê|"|;|\?|\*|=$).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* …
Run Code Online (Sandbox Code Playgroud)

security .htaccess firewall sql-injection

1
推荐指数
1
解决办法
3621
查看次数

允许用户在Web应用程序中输入禁用更新的SQL select语句

我需要允许用户在我的Web应用程序中输入SQL select语句; 这些select语句将用于在自定义下拉列表中生成选项.

所以我在UI上有一个用户输入选择的字段; 如何禁止用户输入插入/更新/删除?我可以检查第一个语句是否select可以在用分号分隔的UI上输入多个语句.

sql sql-injection web

1
推荐指数
1
解决办法
182
查看次数