php - 没有数据库的 $_POST 和 $_GET 变量安全

标签 php http post get

如果您的应用程序没有使用数据库,但您在代码中“回显”或使用了 $_POST 或 $_GET 变量,我们是否需要对它们进行转义?

喜欢:

if(isset($_GET['test']){
  echo $_GET['test'];
}

function math(){
if(isset($_GET['number'],$_GET['numberr']){
  return $_GET['number']*$_GET['numberr'];
}
return null;
}

最佳答案

即使您使用数据库,您也需要在打印前对它们进行转义或清理。有人可能会像 <b> 那样潜入杂散的 HTML这将使您的整个页面变为粗体,或 <script>alert('hello');</script>将运行 Javascript。

echo htmlspecialchars($_GET['test']);

这会将您所有的 < 替换为 &lt;和 > 与 &gt;这样 HTML 将被视为文本而不是 HTML,并且不会弄乱您的页面。

关于php - 没有数据库的 $_POST 和 $_GET 变量安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22365534/

相关文章:

javascript - Ionic + Angular - 如何在 POST 请求后避免 "404 Not Found (from cache)"?

jquery - 如何使用 jQuery 发布包含多个字段的表单?

php - View 页面中显示的链接错误

php - Azure Active Directory MFA

java - SHA-1 需要多长时间来创建哈希?

java - 当用 Java 拉取网页时,如何确保 AJAX 调用完成

javascript - 当浏览器和服务器之间交换数据时,数据只能是文本。为什么?

用于入队和出队的 REST 动词

javascript - AJAX 导致跳转到顶部

php - 复杂的 MySQL session 组查询?