良好的 XSS 注入保护?

Good XSS injection protection?

我一直在开发一个网站 (lualessons.x10host.com),有人告诉我我的网站很容易被跨站脚本注入。有解决这个问题的好方法吗?提前谢谢你。

你知道 XSS 是如何工作的吗? 如果不是,这里有一个关于基本 XSS 的简单解释:如果您在表单的 "type=text" 输入字段中获得用户的输入,用户可以在其中编写 javascript 之类的代码(在您这边,我可以在 "Username" 字段类似于 <script type="text/javascript">alert("hello")</script>)。由于主要显示用户名,此代码将写入数据库,然后在有人登录或访问我的个人资料时返回 html。然后将执行此 javascript 代码。在这种情况下,它只是一个简单的警报,所以它不会造成任何伤害,但我想你现在已经明白了。

为了提供保护,我会使用 htmlentities($your_string) 在 PHP。 因此,如果您通过 post 或 get 获取值,请确保将它们转换为 "friendly" 值,例如

<?php 
if(isset($_POST["your_name_tag_from_html"])){
$friendlyvalue = htmlentities($_POST["your_name_tag_from_html"]);
}

// do something with $friendlyvalue
?>

希望对您有所帮助:)