如何使$ _POST更安全?(How to make $_POST more secured?)

2019-09-17 01:49发布

这是一个示例代码,我从Facebook页面工程了。

<?php
if ($_POST['name']) {
?>
    <span>Hello, <?=$_POST['name']?>.</span>
<?php 
} else {
?>
<form method="post">
What is your name?<br>
<input type="text" name="name">
<input type="submit">
</form>
<?php
}

它说,上面的代码是不安全的,因为它是开放的跨站点脚本。 正确的方法是通过$ _ POST [“名”]通过用htmlspecialchars()。 不过,他们表示,这是编程习惯较差。

总是通过一个用htmlspecialchars()低效传递$ _ POST变量?

我不能想到的任何方式,以确保安全。 他们介绍XHP对此我不愿使用。

参考: https://www.facebook.com/notes/facebook-engineering/xhp-a-new-way-to-write-php/294003943919

Answer 1:

阅读此链接彻底将帮助ü有关表单验证和安全性的目的- http://phpsec.org/projects/guide/2.html



Answer 2:

正确的方法是通过$ _ POST [“名”]通过用htmlspecialchars()。 不过,他们表示,这是编程习惯较差。

它本身不是不良做法。 问题是,当你键入htmlspecialchars每一次你把文本内容转换成HTML,你很可能会忘记一个,留一个漏洞。

什么是网页的说法,正确的是,最好是有一个模板语言,HTML的逃逸默认情况下 ,让你不必去想它。 这是一个教训大多数Web框架,迄今为止已获悉,但生PHP仍然没有方便的方法来做到这一点。



文章来源: How to make $_POST more secured?
标签: php security