问题标签 [mysql-real-escape-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php 保护对抗他人
我有一个 php 文件,它在开始时从使用 $_GET 发送的内容中分配一些变量。
然后它执行一些 mysql 查询,处理输出,然后回显一些文本和变量。
我在代码中设置的唯一保护是mysql_real_escape_string
在 GET 上。
这足以防止攻击吗?
还有什么可以做的?
php - 在 PHP 中两次转义引号
我有一个复杂的表格,我首先必须获取一些$_GET
参数,显然我必须对它们做一个mysql_real_escape_string()
,因为我用它们在数据库中查找东西。
他们的问题是在最初的数据库查找之后。当用户提交表单时,我将它们作为$_POST
请求发送,显然必须mysql_real_escape_string
再次进行此调用,以防有人试图通过伪造的表单提交来入侵我的网站。
然后我遇到的问题是参数被转义了两次,我的查询开始看起来很奇怪,如下所示:
所以系统似乎正在添加 \' 并且它让我感到困惑:) 另外,在我的其他形式中,我还没有看到这种行为。关于可能导致这种情况的任何想法?
一件奇怪的事情是我试图向帖子发送未转义的参数,并且发生了同样的问题。这是一个线索,但对我来说还不够。:(
mysql - 何时使用 mysql_real_escape_string?
我什么时候应该使用 mysql_real_escape_string?
只有当我将行插入数据库时?或者只有当我有用户输入时?
谢谢
php - mysql_real_escape_string 不够好?
因此,即使使用 %27 对数据进行了清理,您也可以只进行 SQL 注入mysql_real_escape_string
该怎么办?
编辑示例:
如果您传入%27) SQL INJECTION HERE %2F*
搜索词查询字符串,我会在页面上输出:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“BOOLEAN MODE)”附近使用正确的语法
感谢大家在 db 类中找到问题..
php - 关于html页面中的stripslash如何隐藏...在php页面中
当我从 CMS 管理面板添加输入然后在执行此 php 方法之前添加数据..
因为我在 db 记录中有太多特殊字符,但 stripslashes 还在 php 页面上显示如何解码 stripslash 或隐藏这些。. 预先感谢。
请让我们知道 php 的任何好的功能...谢谢
谢谢
php - 如何只允许 HTML 进入我的数据库?
我试图让用户只在表单中输入 HTML,并在提交时将其存储到数据库中。我一直在尝试使用mysql_real_escape_string
,但是我用 HTML 标签放入表单的 PHP 似乎没有被剥离。如何“过滤”存储在数据库中的内容?
编辑:
我想保持 HTML 原样。所以,假设用户输入
并点击提交;我希望它可以毫无问题地输入数据库,然后在以后的路上,能够出现在他们的帖子上。
我想摆脱诸如PHP标签之类的东西:
如果仍然没有任何意义,我会尽力解释得更好。
php - encodeURIComponent 和 mysql_real_escape_string
我想问你,mysql_real_escape_string()
如果数据是使用函数在我的 JS 文件中编码的,是否有必要对我在 PHP ajax 文件中发送到我的数据库的数据使用 PHPencodeURIComponent()
函数?谢谢
php - mysql_real_escape_string() 没有清理变量
我正在开发一个试图防止 SQL 注入的现有网站。之前$_GET['ID']
没有消毒。
如果我在 url 的末尾加上一个 ',mysql_real_escape_string()
我会从以下位置获得mysql_error()
:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\\' AND s1.MERCHANT_ID=me.MERCHANT_ID' 附近使用正确的语法
没有mysql_real_escape_string()
我得到:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\' AND s1.MERCHANT_ID=me.MERCHANT_ID' 附近使用正确的语法
我不确定这是怎么回事?任何帮助将不胜感激。
php - 如何在 PHP 中使用 mysql_real_escape_string 函数
所以在我正在编写的这个程序中,我实际上使用表单从用户那里获取了一个 SQL 查询。然后我继续在我的数据库上运行该查询。
我知道不要“信任”用户输入,所以我想对输入进行清理。我正在尝试使用mysql_real_escape_string
,但未能使其正常工作。
这是我正在尝试的,给定输入:
select * from Actor;
这总是给我
“输入无效!”
错误。
当我取出clean_string
零件并mysql_query
在查询中运行时,
“输入无效”
消息不输出。相反,当我这样做时:
它不输出
“输入无效”。
但是,我需要使用该mysql_real_escape_string
功能。我究竟做错了什么?
更新:
作为
select * from Actor;
输入,我发现了以下内容。
使用 echo 语句,我发现在清理之前,字符串包含值:
select * from Actor;
这是正确的。但是,在清理后,它的值不正确select *\r\nfrom Actor;
,因此出现错误消息。为什么
mysql_real_escape_string
要这样做?
php - 使用 PHP/MYSQL 转义电子邮件中的字符
mail()
当我将函数用于 PHP时,我无法弄清楚字符如何被转义的逻辑。我使用的是 PHP 5.2,magic_quotes_qpc 为 ON,runtime/sybase 为 OFF。这就是问题所在。
A 有一个接受文本输入的表单,我用它
/li>mysqli_real_escape
来转义特殊字符,以便在 SQL 语句中使用,如下所示:如果我输入以下评论“我不会吃那个!” 进入表格,我在数据库中看到以下内容 - “我不会吃那个!”,这是我所期望的。如果我添加回车/换行,我在 phpMyAdmin 的数据库字段中看到的只是回车和没有特殊字符的换行(即没有“\r\n”或类似的东西)。
当我使用该
/li>mail
功能发送消息(即mail($to, $subject, $text, $headers)
)时,我在电子邮件正文中收到了一些奇怪的东西:
归根结底,我只希望电子邮件输出的格式与表单输入完全相同,换句话说:
我不确定为什么在撇号之前有三次转义以及为什么 \r\n 出现在我的电子邮件中。