相关疑难解决方法(0)

无论如何通过将php保存到数据库来清理HTML代码?

可能重复:
用PHP清理用户输入的最佳方法是什么?

我正在使用TinyMCE来允许用户编辑网页的一小部分.

该字段将保存到数据库中.

是否有一个正则表达式,我可以用它来清理传入的HTML代码,以避免任何XSS/NULL/DROP TABLES类型的攻击?

我已经在单行输入文本/数字等上完成了这项工作,但在接收HTML字符串时不确定如何处理此问题.

html php mysql xss

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

使用GET/POST数据的"require"是否安全?

使用以下代码是否安全:

require($_SERVER['DOCUMENT_ROOT'] . "/pages/" . $_GET['page'] . ".php") 
Run Code Online (Sandbox Code Playgroud)

php security

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

有效地清理用户输入的文本

我有一个html表单,接受用户输入的大小约为1000的文本,并提交到一个php页面,它将存储在mysql数据库中.我使用PDO与预准备语句来防止SQL注入.但要清理用户输入的文本,需要做的最好的努力是什么?

我想阻止任何脚本注入,xss攻击等.

php mysql security

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

PHP中的数据清理

有人可以推荐一个最新的PHP库中的数据清理库吗?

我正在寻找一个提供一组数据清理功能的库.电子邮件验证/清理(删除那些%0A,\ r \n ...),剥离htlm(stripslashes(htmlentities),删除脚本,SQL注入......与用户提交的数据相关的任何形式的漏洞利用.

CakePHP清理类(不是"框架")看起来不错..?

php sanitization

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

htmlspecialchars和mysqli_real_escape_string之间的区别?

我在PHP书中读到,当我们处理用户输入的数据时,使用htmlspecialcharsmysqli_real_escape_string处理条件是一个好习惯.这两者之间的主要区别是什么,它们适合使用?请指导我.

php mysql

6
推荐指数
3
解决办法
4989
查看次数

在不使用预准备语句的情况下防止JDBC中的SQL注入

我知道使用Prepared Statements是防止SQL注入的最佳方法(以及未经检查的输入中未转义字符导致的语法错误).

我目前的情况是我正在编写一些Java代码来将数据从一个第三方应用程序移动到另一个应用程序.目标应用程序使用Sybase的专有版本,因此虽然我确实让JTDS JDBC驱动程序PreparedStatement失败,因为驱动程序使用的临时存储过程在数据库的这种特殊风格中不受支持.所以我只需要Statement使用,我无法控制用户输入,因为它来自另一个应用程序.

类似的问题,但是这个问题主要集中在修复问题,即你有一个参数,例如一个无法通过Prepared Statement处理的表.我的情况不同,希望更简单,因为我有简单的SQL语句.我想知道是否有最佳实践来复制以下内容而不使用PreparedStatement:

PreparedStatement statement = connection.prepareStatement("UPDATE mytable SET value=? WHERE id=?");
statement.setInt(1, getID());
statement.setString(2,userInput);
statement.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

所以我想问题是如何可靠地清理用户输入?我可以尝试从头开始自己做,但这似乎是一个坏主意,因为可能至少有一个我会想念的边缘情况,所以我希望那里有一个库可以为我做这个,但是到目前为止我还没能找到一个.

java sql-injection jdbc prepared-statement

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

写入文件的输入是否会被恶意篡改?

优步简单的例子说明了这一点:

$message = $_POST['message'];

$fp = fopen("log.txt", "a");
fwrite($fp, $message);

fclose($fp);
Run Code Online (Sandbox Code Playgroud)

我应该清理$_POST['message']变量的用户输入吗?

我理解准备好的语句(用于数据库清理)和htmlentities(如果我POST在某个时间将消息输出回屏幕)但在这种情况下,输入只是坐在一个日志文件中,该文件将由一个小的PHP脚本读取(via fopen())

答案取决于如何阅读?例如,如果我通过fopen()打开日志文件应该是htmlentities,如果我打算下载日志文件并用Excel读取(用于过滤目的),那么没有什么可做的?

php security validation file

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

避免使用BBCode输入和HTML输出的XSS

我目前正在一个网站上工作,用户可以用很少的格式编写文章(如粗体,斜体,列表......).我正在使用一个框架:CodeIgniter.

我是初学者,我听说过一些关于XSS的东西.我想知道您对我的实施情况有何看法.我读到了这个主题: 用PHP清理用户输入的最佳方法是什么?

1)用户写他的文章,用BBCode格式化.我正在使用SCEditor.

2)当将其保存到数据库中时,我使用htmlspecialchars()来过滤任何可疑的HTML标记.我在保存数据或显示数据时应该这样做吗?

3)当我想在网站上显示文章时(例如用于其他用途),我将BBCode标签转换为HTML标签.

这是一种正确的方法吗?我是否避免使用XSS?

我显然对这些建议和建议持开放态度.

谢谢你的回答

html xss codeigniter bbcode htmlspecialchars

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

Canonical:如何将HTML表单数据保存到MySQL数据库中

这是使用PHP将数据从(HTML)表单保存到MySQL数据库的规范问题和答案.

如果您尝试执行以下操作,这适用于您:

  1. 接受HTML表单上的用户输入
  2. 使用PHP脚本处理输入
  3. 将所述输入存储到MySQL数据库中.

过去提出的类似问题的示例不应使用:

连接PHP代码并将表单提交到mySQL数据库
使用php/html表单插入mysql - 不工作
如何使用PHP将HTML表单数据传递给MYSQL数据库并将数据返回到浏览器
将表单数据保存到数据库

简而言之,如果您有疑问,请继续阅读:我想使用HTML表单,PHP和MySQL或类似的方式将用户输入存储到数据库.

php mysql forms

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

PHP安全会话登录-最佳实践

作为我的网络应用程序的一部分。这是我正在考虑的一些代码(我不是最好的PHP程序员,但我为项目编写自己的应用程序):

// Start session
session_start();
// Is the user already logged in?
if (isset($_SESSION['username'])) {
    header('Location: members-only-page.php');
}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果我的登录结构是这样,是否安全。

我正在使用MD5(); 但是我对脚本使用的整个$ _session [“ user”] =“ 1”方法并不完全满意;当然,像vBulletin这样的人不会这样做吗?

感谢答复。我什至还没有想到过将其作为Ajax的想法!

更新-我的方法的伪代码。一切都在SSL上。

// vars
login string post
password string post

// validation aside from ajax now
login string is empty
redirect to login form with error
password string is empty
redirect to login form with error

// mysql
escape strings
clean html strings

mysql connect external mysql server
if …
Run Code Online (Sandbox Code Playgroud)

php session secure-coding

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