如何使这篇PHP$\u文章更安全-还是已经安全了?

如何使这篇PHP$\u文章更安全-还是已经安全了?,php,mysql,security,post,Php,Mysql,Security,Post,在我的站点上输入的大多数my$\u post数据上,我使用以下php: $example = $_POST['textfield']; $example = strip_tags($example); $example = mysql_real_escape_string($example); 然后我将与MySQL数据库交互 这是“安全的”还是“安全的” 以上代码有任何重大漏洞吗 -如何使其安全?最后要做的一件事是验证数据: 您可以检查它是否为空字符串?一个号码?或者您期望的任何数据类型。示例

在我的站点上输入的大多数my$\u post数据上,我使用以下php:

$example = $_POST['textfield'];
$example = strip_tags($example);
$example = mysql_real_escape_string($example);
然后我将与MySQL数据库交互

这是“安全的”还是“安全的”

以上代码有任何重大漏洞吗


-如何使其安全?

最后要做的一件事是验证数据:


您可以检查它是否为空字符串?一个号码?或者您期望的任何数据类型。示例如果您希望收到一封电子邮件,可以使用regex确认这是一封实际的电子邮件。

最后要做的一件事是验证数据:


您可以检查它是否为空字符串?一个号码?或者您期望的任何数据类型。例如,如果您希望收到一封电子邮件,可以使用regex确认它是一封实际的电子邮件。

mysql\u real\u escape\u string使它非常安全

它始终取决于您希望对值执行的操作。 你不想去掉密码,你只需要修改它就行了。 如果您将其存储在另一个页面上显示,您应该使用html_specialchars来阻止黑客攻击

有时你应该验证输入是否为整数,如果它不包含数字,如果其中没有A


所以这真的取决于mysql\u real\u escape\u string是否使它非常安全

它始终取决于您希望对值执行的操作。 你不想去掉密码,你只需要修改它就行了。 如果您将其存储在另一个页面上显示,您应该使用html_specialchars来阻止黑客攻击

有时你应该验证输入是否为整数,如果它不包含数字,如果其中没有A


所以这确实取决于

虽然mysql\u real\u escape\u string()可以防止SQL注入,但仍然可能存在不必要的行为

注意,
mysql\u real\u escape\u string()
不会转义
%

因此,如果用户在发布的表单字段中输入例如
%
,则类似
where子句可能返回比预期多得多的数据


请参阅PHP手册中的最后一个提示。

虽然
mysql\u real\u escape\u string()
可以防止SQL注入,但仍可能存在不必要的行为

注意,
mysql\u real\u escape\u string()
不会转义
%

因此,如果用户在发布的表单字段中输入例如
%
,则类似
where子句可能返回比预期多得多的数据



请参阅PHP手册中的最后一个提示。

现在没有理由使用striptags。我认为它看起来不错。你已经用strip标签阻止了跨站点攻击,并且使sql变得安全。我不同意codeinchaos的观点,如果你计划显示它,或者在输出时确保在它上运行特殊字符,那么就需要strip标签。就像在html_specialchars中一样?现在没有理由使用strip标签。我认为它看起来不错。您已经停止了带条标记的跨站点攻击,并且使sql变得安全。我不同意codeinchaos的观点,如果您计划显示此内容或确保在输出时在其上运行特殊字符,则需要带条标记。就像html_specialchars一样?但这不是安全问题,是吗?例如,在搜索中?问题的主体是询问这是否是“安全的”/“安全的”—数据验证肯定会让事情变得更安全。@James,如果你在清理数据后不验证数据,你可能一开始就没有费心清理它。但这不是安全问题,不是吗?例如,在搜索中?问题的主体询问这是否是“安全的”/“安全的”—数据验证肯定会让事情变得更安全。@James,如果你在清理数据后不验证数据,那么你可能一开始就懒得清理它。html_specialchars和strip_标记之间有什么区别?Stittags:“hey-hey

”——>>>>“hey-hey.”与htmlspecialchars的区别在于标记保留了下来,但编码为不可替换:htmlspecialchars:“hey-hey

”——>>>“phey-hey”“/p如果用户想键入它不会被删除,但如果我想禁止我网站上的所有html,strip_标记足以阻止它吗?是的,当然可以,但是htmlspecialchars会阻止它们,但是标记将是可读的(但不适用于浏览器,换言之,伪标记)。html_specialchars和strip_标记有什么区别?stipttags:“hey-hey

”——>>>>“hey-hey.”与htmlspecialchars的区别在于标记保留了下来,但编码为不可替换:htmlspecialchars:“hey-hey

”——>>>“phey-hey”“/p如果用户想键入它不会被删除,但如果我想禁止我网站上的所有html,strip_标记足以阻止它吗?是的,当然可以,但是htmlspecialchars会阻止它们,但是标记将是可读的(但不适用于浏览器,换句话说,是假的标记)