我可以使用这种消毒液安全地将数据输出给用户吗
Can I safely output data to the user using this sanitize
因此,我正在努力找出对xs进行消毒的最佳方法,以便向用户安全输出。
或多或少,当存储表单中的值时,im使用strip_tags();则bind_params();
当Im将要向用户输出数据时,Im也使用htmlenties();
数据将仅显示在<p>
和<a>
标签内。
例如:
<p> Some data from user </p>
<a href=""> Some data from user </p>
这样行吗?
索引.php
<form action="sante.php" method="post">
Name: <input type="text" name="fname">
Age: <input type="text" name="age">
<input type="submit">
</form>
然后是sante.php
<?php
$name = $_POST["fname"];
$age = $_POST["age"];
$namn = strip_tags($name); // then storing into mysql with bind_param
$older = strip_tags($age); // then storing into mysql with bind_param
// before output, htmlentities
function safe( $value ) {
htmlentities( $value, ENT_QUOTES, 'utf-8' );
return $value;
}
// Now showing values
echo safe($namn). "<br>";
echo "<p>" .safe($older) . "</p>";
?>
是的,您可以安全地使用此代码。我看到您已经在使用bind_param
(我假设是mysqli
或PDO
库)和htmlentities
,前者可以防止SQL注入(对您造成损害),后者可以防止跨站点脚本编写(对用户造成损害)。
在写入数据库之前,您甚至不需要调用strip_tags
,尽管如果您根本不希望用户输入包含任何JS/PHP/HTML标记(以及如果您忘记在输出时调用safe
函数),这是一个不错的主意。
当您将数据插入数据库时,必须使用mysql_real_sescape_string或使用PDO,如果显示数据,则必须使用htmlspecialchars
相关文章:
- 以不同的顺序输出数据
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 如何将JSON数据转换为变量,解析并输出为HTML
- 如何在Javascript中输出提示数据
- Highcharts将数据输出到HTML表
- 在javascript中测量websockets数据输入/输出的大小
- JS函数只返回未定义的数据,但alert输出正确的数据
- 如何在客户端输出数据?(express+monodb+jade)
- 如何将数据输出到 CasperJS 中的文件
- 使用 JS 将 XML 数据输出到 HTML
- 将“加载更多”添加到从Google电子表格中通过$.getJSON接收的数据输出中
- 将 php 数据输出到 jquery 数组中
- 我可以使用这种消毒液安全地将数据输出给用户吗
- 在我的visual studio应用程序页面中显示正在运行的控制台程序数据输出
- 使用php格式化数据输出
- 根据下拉改变数据输出
- 使用Ajax和PHP进行数据输出
- 数据输出在javascript中是重复的.如何修复
- 使用jQuery/PHP将数据输出到浏览器的多部分表单.如何显示输入数据