gpt4 book ai didi

php - 下拉选择字段是否容易受到任何类型的注入(inject)

转载 作者:行者123 更新时间:2023-11-29 01:08:54 25 4
gpt4 key购买 nike

我在这里读到“永远不要相信用户输入”这句格言,它很有道理。我可以理解用户输入的任何字段都是可疑的。但是,下拉选择字段怎么样?它们可以用于任何类型的注入(inject)吗?

我已经清理了所有允许用户输入的字段,并且还使用 mysqli 准备好的语句插入到数据库中。

但是,我的表单中有三个下拉菜单,我想知道是否需要对它们做任何事情?

最佳答案

网站中的每个元素都可能被恶意用户更改(隐藏字段、div、样式、ajax 调用,应有尽有...)。

也就是说,如果您已经在使用准备语句,则不必太担心 SQL 注入(inject),因为 mysql 已经知道将要执行哪些语句。

相反,您应该清理网站中呈现的所有输出。

假设在您的表格中,您以这种方式询问我住在哪个国家/地区:

 <select name="country">
<option value="Mexico">Mexico</option>
<option value="USA">USA</option>
<option value="Canada">Canada</option>
</select>

但我是恶意用户,我使用 Chrome 的代码检查器更改您的 HTML,我选择墨西哥,但将其值更改为

<script type="text/javascript">alert("Hello World");</script>

如果您以这种方式在另一个页面中输出该值:

 Your country is: <?=$country?>

然后你会写:

 Your country is:
<script type="text/javascript">alert("Hello World")</script>

然后会弹出一个带有文本“Hello World”的警告框

你可能想知道我会造成什么伤害......

好吧,我可以用它做任何我想做的事,我可以窃取 cookie,或者如果该值是公开的(比如您在首页显示该值),那么我可以将您的用户重定向到另一个网站,更改您网站的内容...任何我想要的。

要清理用户的输出,您可以使用

htmlentities

这将转换,例如,< >其各自代码的符号:&lt;&gt

关于php - 下拉选择字段是否容易受到任何类型的注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com