相关疑难解决方法(0)

插入MySQL时,在PHP中转义单引号

我有一个令人困惑的问题,我似乎无法理解......我希望有人能指出我正确的方向......

我有两个SQL语句: - 第一个将表单中的信息输入数据库. - 第二个从上面输入的数据库中获取数据,发送电子邮件,然后记录交易的详细信息

问题是看起来单引号只在第二个条目上触发MySQL错误!第一个实例没有问题,但第二个实例触发了mysql_error().

表单中的数据是否与表单中捕获的数据处理不同?

查询#1 - 这没有问题(并且没有转义单引号)

$result = mysql_query("INSERT INTO job_log
(order_id, supplier_id, category_id, service_id, qty_ordered, customer_id, user_id, salesperson_ref, booking_ref, booking_name, address, suburb, postcode, state_id, region_id, email, phone, phone2, mobile, delivery_date, stock_taken, special_instructions, cost_price, cost_price_gst, sell_price, sell_price_gst, ext_sell_price, retail_customer, created, modified, log_status_id)
VALUES
('$order_id', '$supplier_id', '$category_id', '{$value['id']}', '{$value['qty']}', '$customer_id', '$user_id', '$salesperson_ref', '$booking_ref', '$booking_name', '$address', '$suburb', '$postcode', '$state_id', '$region_id', '$email', '$phone', '$phone2', '$mobile', STR_TO_DATE('$delivery_date', '%d/%m/%Y'), '$stock_taken', '$special_instructions', '$cost_price', '$cost_price_gst', '$sell_price', '$sell_price_gst', '$ext_sell_price', '$retail_customer', '".date('Y-m-d …
Run Code Online (Sandbox Code Playgroud)

php mysql escaping insert

181
推荐指数
7
解决办法
19万
查看次数

如何在MySQL中转义特殊字符?

例如:

select * from tablename where fields like "%string "hi"  %";
Run Code Online (Sandbox Code Playgroud)

错误:

您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行的'hi""'附近使用正确的语法

如何构建此查询?

mysql

69
推荐指数
6
解决办法
36万
查看次数

PHP中的魔术引号

根据PHP手册,为了使代码更具可移植性,他们建议使用以下内容来转义数据:

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}
Run Code Online (Sandbox Code Playgroud)

我还将进行其他验证检查,但上述严格来说,在逃避数据方面有多安全?我还看到在PHP 6中将不推荐使用魔术引号.这将如何影响上述代码?我宁愿不依赖于像mysql_real_escape_string()这样的特定于数据库的转义函数.

php security magic-quotes

17
推荐指数
3
解决办法
1万
查看次数

这个PHP代码中是否存在任何安全漏洞?

我只是有一个网站来管理,但我不太确定前一个人写的代码.我正在粘贴下面的登录程序,您能看看并告诉我是否存在任何安全漏洞?乍一看,似乎可以通过SQL注入或操纵cookie和?m =参数进入.



define ( 'CURRENT_TIME', time ()); / / Current time. 
define ( 'ONLINE_TIME_MIN', (CURRENT_TIME - BOTNET_TIMEOUT)); / / Minimum time for the status of "Online". 
define ( 'DEFAULT_LANGUAGE', 'en'); / / Default language. 
define ( 'THEME_PATH', 'theme'); / / folder for the theme. 

/ / HTTP requests. 
define ( 'QUERY_SCRIPT', basename ($ _SERVER [ 'PHP_SELF'])); 
define ( 'QUERY_SCRIPT_HTML', QUERY_SCRIPT); 
define ( 'QUERY_VAR_MODULE', 'm'); / / variable contains the current module. 
define ( 'QUERY_STRING_BLANK', QUERY_SCRIPT. '? m ='); / / …

php security hash cryptography sql-injection

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

PHP的addslashes是否容易受到sql注入攻击?

可能重复:
mysql_real_escape_string()做了什么,addslashes()没有?

我一直在评论关于PHP的addslashes函数如何/为什么容易受到sql注入攻击的文章.我读过的所有内容都说特定的mysql编码类型存在问题(default-character-set = GBK),或者如果启用magic_quotes则存在问题.但是,在这种情况下,我无法摆脱addslashes()函数并执行恶意操作 - 例如以管理员身份登录.

    $user = addslashes($_POST['user']);
    $pass = sha1($_POST['pass']);
    $sql = "SELECT * FROM admins WHERE user = '".$user."' AND `pass` = '".$pass."'";

    $nums = mysql_num_rows(mysql_query($sql));

    if($nums==1){
    $_SESSION['admin_user'] = $user;
    $_SESSION['admin_pass'] = $pass;
Run Code Online (Sandbox Code Playgroud)

这是对客户的(次要)安全审核,我会建议他们使用PDO,但我需要显示他们当前的漏洞.

参考文献:

php addslashes

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

使用utf和单引号时可以绕过addslashes吗?

我正在尝试验证在脚本上使用addslashes是否可被利用,众所周知,不应该使用addslashes,但是问题是,它总是可被利用吗?

我发现了大量关于在字符集不是 utf8(使用双字节转换)以及变量被“”括起来的两种情况下滥用 addslashes 的信息

那么,当上述情况都没有发生时,是否可以绕过addslashes?这是我一直在测试的代码:

带有数据库转储的 data.sql 文件:

CREATE TABLE IF NOT EXISTS `test` (
  `user` varchar(25) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `test` (`user`) VALUES
('admin'),
('user');

mysql -u test -ptestpw test < data.sql
Run Code Online (Sandbox Code Playgroud)

index.php 放置在服务器中

<?php
  //Server script the receives content via post
  mysql_connect("localhost","test","testpw");
  mysql_select_db("test");
  $user=addslashes($_POST['username']);
  $query="SELECT * FROM test WHERE user='".$user."'";
  $q=mysql_query($query) or die (mysql_error());
  $num_rows = mysql_num_rows($q);
  echo "Listed rows: $num_rows";
  if ($num_rows > 0) {
        $a=mysql_fetch_array($q);
        print_r($a);
  }
?> …
Run Code Online (Sandbox Code Playgroud)

php security addslashes

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

用于SQL注入性能的最佳函数

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

我想知道最好用哪些函数来防止MySQL注入

我可以使用一些函数来阻止sql注入,例如:

  • mysql_real_escape_string
  • mysqli_real_escape_string
  • addslashes
  • 为数字输出值(intval等...)
  • htmlentitiesENT_QUOTES
  • 或者只是删除'"

我想使用最好和更快的反SQL注入方法来标准化我的代码,我想知道我应该为高流量站点使用哪一个.

php mysql sql-injection

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

从php字符串中转义特殊字符

我们正在尝试从字符串中转义一些特殊字符,请告诉我我们必须使用的函数\ne.g。HTC Desire 210 \xe2\x80\x93 白色
\n在此示例中,我们转义 -(连字符)特殊字符。\n在上面的示例中,我们有很多具有不同特殊字符的产品名称,我们对其进行转义。\n感谢您的合作。

\n

php mysql arrays

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