标签: mysql-real-escape-string

Mysql_real_escape_string ...还有自动设置吗?

这里有一个奇怪的情况.在我的本地mysql数据库(v5.1.41)上,如果我要处理用户的引用语法而没有任何问题,我需要使用此转义命令.但是我无法在我的Web服务器的mysql数据库(v5.0.91-community)上使用此命令.如果在Web服务器上使用此命令(apache v2.2.13),则会在用户的引用语法中添加额外的斜杠语法,因此,如果删除mysql_real_escape_string命令,带引号的输入将无法插入数据库.

所以我想知道,除了php,在apache(v2.2.13)或mysql本身中是否有设置可以自动处理引用语法,如PHP的mysql_real_escape_string命令?

先感谢您

php mysql apache mysql-real-escape-string

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

整个$ _REQUEST数组的mysql_real_escape_string(),还是需要遍历它?

有没有更简单的方法来安全地提取除以下之外的提交变量?

if(isset($_REQUEST['kkld'])) $kkld=mysql_real_escape_string($_REQUEST['kkld']);
if(isset($_REQUEST['info'])) $info=mysql_real_escape_string($_REQUEST['info']);
if(isset($_REQUEST['freq'])) $freq=mysql_real_escape_string($_REQUEST['freq']);
Run Code Online (Sandbox Code Playgroud)

(而且:你会isset()在这种情况下使用吗?)

php mysql mysql-real-escape-string

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

MySQL真正的转义字符串

我试图使用addslashes和mysql_real_escape_string来清理我的PHP登录输入.使用addslashes作品,但mysql_real_escape_string不会.

以下是允许我正确登录的示例:

$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
Run Code Online (Sandbox Code Playgroud)

这不会:

$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
Run Code Online (Sandbox Code Playgroud)

此外,我的一些其他字段包含撇号.使用addslashes时不返回任何内容,因为数据库中的条目不会被转义.我想知道是否使用mysql_real_escape_string可以解决这个问题,但我不知道如何.

php mysql sanitization mysql-real-escape-string apostrophe

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

mysql_real_escape_string无效

我的mysql_real_escape_string被忽略了.它杀了我,因为我觉得这是我想念的小事.

$ htmlText变量来自TinyMCE编辑器,其中文本呈现为HTML,即带有标签等.

<?php 
    /*--------GLOBAL PROCEDURES--------*/
    session_start();
    require "../scr/config-data.php.inc";
    mysql_connect($host,$username,$password) or die 
    ("Could Not Connect".mysql_error());
    mysql_select_db($db) or die ("Could Not Connect".mysql_error());

    /*-----SEVERAL SELECT/INSERT QUERIES, ALL WORKING FINE-----*/

    /*--------SPECIFIC PROCEDURES-------*/      
    if($_POST['submit']){
        //Check that POS has been chosen
        $htmlText = mysql_real_escape_string($_POST['cust']);
        if($htmlText != ""){
            mysql_query("INSERT INTO table VALUES(NULL, '$htmlText' )") or die(mysql_error());
        }else{
            $feedback = "Please Enter some text into the editor";
        }
    }

    /*--------CLOSING PROCEDURES-------*/
    mysql_close();

?>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它是从一个有效的脚本改编而来,只改变了变量名.我在MySQL语法中遇到错误.它也没有转义文本中的HTML,所以我收到此错误:

You have an error in your SQL syntax; check the manual that corresponds …
Run Code Online (Sandbox Code Playgroud)

php mysql mysql-real-escape-string

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

PHP问题将implode()与mysql_real_escape_string()结合起来

如何正确编写内爆和mysql_real_escape_string的MySQL查询的代码?

这是我的代码,但它失败了:

$sql = "INSERT INTO BEER_LOCATIONS 
        (LOCATION_NAME, LOCATION_STREET, LOCATION_CITY, LOCATION_STATE,
        LOCATION_ZIPCODE, LOCATION_PHONE, BEER_STYLE ) 
    VALUES 
        ('" . mysql_real_escape_string(implode("', '", $row)) . "')";
Run Code Online (Sandbox Code Playgroud)

谢谢

php mysql-real-escape-string implode

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

消除PHP/SQL $ _POST,$ _GET等......?

好的,这个主题是我理解的温床.我也明白这种情况取决于您使用的代码.我有三种情况需要解决.

  1. 我有一个表格,我们需要允许人们发表使用逗号,波浪号等的评论和陈述......但仍然可以安全地免受攻击.

  2. 我有人进入这样的日期:10/13/11 mm/dd/yy英文,这可以消毒吗?

  3. 如何理解如何使用htmlspecialchars(),htmlentities()以及real_escape_string()是否正确?我已经阅读了php.net网站和这里的一些帖子,但在我看来这是一个情况,这一切都取决于阅读问题的人是什么正确的答案.

我真的不能接受......必须有一个答案,其中与我在这里发布的文本格式类似的文本格式可以被清理.我想知道是否以及如何做到这一点.

谢谢...因为在我看来,在其他地方提出这个问题时,它往往会烦恼...我正在学习我需要知道的东西,但我想我已经达到了一个平台,我所知道的就是没有一个例子它意味着......

提前致谢.

php mysql-real-escape-string html-entities htmlspecialchars

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

来自远程文件的SQL注入

我有一个文件"submit.php",它将从"choose-product.php"中的前一个表单提交的一系列值写入MySQL数据库.我已经mysql_real_escape_string按照上一个问题中的建议使用了,但是我注意到如果我将"choose-product.php"文件上传到单独的服务器并将表单的开头更改为

<form name="form" id="form" action="http://www.myserver.com/submit.php" method="post">
Run Code Online (Sandbox Code Playgroud)

将为数据库写一系列值.显然这非常糟糕!现在,我知道有一种方法可以解决这个问题,但由于这是我第一次编写这样的代码,我有点难过.

以下是完整代码submit.php:

<?php
include("db.php");

function random_string() {
    $character_set_array = array();
    $character_set_array[] = array('count' => 7, 'characters' => 'abcdefghijklmnopqrstuvwxyz');
    $character_set_array[] = array('count' => 1, 'characters' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
    $character_set_array[] = array('count' => 3, 'characters' => '0123456789');
    $character_set_array[] = array('count' => 1, 'characters' => '!@#$*&:');
    $temp_array = array();
    foreach ($character_set_array as $character_set) {
        for ($i = 0; $i < $character_set['count']; $i++) {
            $temp_array[] = $character_set['characters'][rand(0, strlen($character_set['characters']) - 1)];
        }
    }
    shuffle($temp_array); …
Run Code Online (Sandbox Code Playgroud)

php mysql security mysql-real-escape-string code-injection

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

转换为int而不是mysql_real_escape_string是否安全

只是想知道,我的应用程序需要尽可能快,并且变量已经被转换为int,所以如果可以避免,我也不想转义字符串.

例如:

$var1 = (int)$_POST['number1'] //User input;
mysql_query("INSERT INTO ... $var1 ..");
Run Code Online (Sandbox Code Playgroud)

在所有情况下都是安全的还是我也应该mysql_real_escape_string $var1

有时我也是md5()vars而不是逃避它们,但我想这没关系.

php mysql mysql-real-escape-string

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

mysql_real_escape_string,stripslashes和htmlspecialchars

当我将变量发布到数据库时,我当然使用了mysql_real_escape_string.这样,特殊字符就像它应该的那样进入数据库.

当我从数据库中读取这个变量时,我再次使用mysql_real_escape_string stripslashes:

$var = stripslashes(mysql_real_escape_string($record['rowname']));
Run Code Online (Sandbox Code Playgroud)

否则它会在引号前给我斜线.

当我使用$var上面提到的这个并想要回应它时,我很简单,echo "$var"因为它已经被剥离并逃脱了,对吧?

另外,如果我在变量上使用stripslashes+ mysql_real_escape_string,那么在数据库中再次POST这个相同的变量就mysql_real_escape_string足够了吗?或者我是否还需要stripslashes这个变量?

总结如下:

据我所知,这是如何工作的:

  1. 使用与mysql一起使用数据时的mysql_real_escape 一次:当通过变量读取查询时,就像将变量发布到数据库一样.
  2. stripslashes在回显转义变量时使用.
  3. 如果要将stripslashes变量再次发布和转发到数据库,则无需再次将其删除.

我想念htmlspecialchars吗?

编辑

所以这都错了?

    while( $record=mysql_fetch_array($result) ) 
    {
        $custid=mysql_real_escape_string($record['custid']);
        $custsurname=mysql_real_escape_string($record['custsurname']);
        $custmidname=mysql_real_escape_string($record['custmidname']);
        $custforename=mysql_real_escape_string($record['custforename']);
        $custcountry=stripslashes(mysql_real_escape_string($record['custcountry'])); }
Run Code Online (Sandbox Code Playgroud)

php mysql mysql-real-escape-string htmlspecialchars stripslashes

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

如何使用带有多个百分比 (%) 符号的 PostgreSQL 和 Python 的类似模式匹配?

我正在尝试与LIKE LOWER('% %')命令进行模式匹配,但是我认为我使用带有 %s 的 python 变量这一事实正在搞砸。我似乎找不到百分比符号的任何转义字符,而且我的程序没有给我任何错误。这是问题还是我还缺少其他东西。如果我只是运行它确实有效,LIKE %s但是我需要能够像不等于一样搜索。

# Ask for the database connection, and get the cursor set up
conn = database_connect()
if(conn is None):
    return ERROR_CODE
cur = conn.cursor()
print("search_term: ", search_term)
try:
    # Select the bays that match (or are similar) to the search term
    sql = """SELECT fp.name AS "Name", fp.size AS "Size", COUNT(*) AS "Number of Fish"
               FROM FishPond fp JOIN Fish f ON (fp.pondID = f.livesAt)
              WHERE LOWER(fp.name) LIKE LOWER('%%s%') …
Run Code Online (Sandbox Code Playgroud)

python postgresql mysql-real-escape-string pattern-matching sql-like

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