Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html(表单)注入_Javascript_Html_Post - Fatal编程技术网

Javascript Html(表单)注入

Javascript Html(表单)注入,javascript,html,post,Javascript,Html,Post,我是webdev的新手,我想知道服务器安全有多危险 这样的代码可以没有数据验证吗 <form id="test" name="test" method="post" action=""> <input type="hidden" value="" name="tst"> <input type="reset" onclick="test.submit()" value="test"> </form> 我知道我们可以注入html代码甚至js脚本

我是webdev的新手,我想知道服务器安全有多危险 这样的代码可以没有数据验证吗

<form id="test" name="test" method="post" action="">
<input type="hidden" value="" name="tst">
<input type="reset" onclick="test.submit()" value="test">
</form>


我知道我们可以注入html代码甚至js脚本,但这对服务器端有危险吗

这里唯一可更改的项是tst字段

作为一般规则,表单中的任何字段都可以由客户端更改(是的,甚至是隐藏字段),因此如果要将所有字段放入数据库,或者使用此字段在服务器上包含()其他项目,则应过滤所有字段(通过PHP中的mysqli::real_escape_string()或其他方法)。如果您只是针对一个条件(并且不会在其他地方使用)抛出字段,则不需要进行筛选,但额外的安全性不会有任何影响


至于注入HTML/JS,它只在其他脚本显示提交的HTML时适用。在这种情况下,请调用htmlspecialchars(_uni)以确保它们不会运行。

从这里开始,唯一可更改的项是tst字段

作为一般规则,表单中的任何字段都可以由客户端更改(是的,甚至是隐藏字段),因此如果要将所有字段放入数据库,或者使用此字段在服务器上包含()其他项目,则应过滤所有字段(通过PHP中的mysqli::real_escape_string()或其他方法)。如果您只是针对一个条件(并且不会在其他地方使用)抛出字段,则不需要进行筛选,但额外的安全性不会有任何影响


至于注入HTML/JS,它只在其他脚本显示提交的HTML时适用。在这种情况下,请调用htmlspecialchars(_uni)以确保它们不会运行。

用户可以轻松编辑隐藏输入的值,从而很容易损坏您的站点。根据此表单的功能,至少应该添加斜杠和htmlentities。当然,只有当数据被发送到服务器时,这才重要

用户可以很容易地编辑隐藏输入的值,从而很容易对您的站点造成损害。根据此表单的功能,至少应该添加斜杠和htmlentities。当然,只有当数据被发送到服务器时,这才重要

前端表单的实际结构对服务器端安全性没有实际影响。这完全取决于一旦数据被传递,服务器将如何处理数据。使用Firebug、Chrome开发工具等,任何用户都可以在您的网站上从头开始编写、修改和提交表单。或者他们可以直接发送
post/get
变量,而不必看到您的表单前端验证和结构完全是为了提示和帮助用户,而不是为应用程序提供安全性。永远不要相信它会受到用户的尊重

还有,为什么不使用

<input type="submit" value="test">

而不是

<input type="reset" onclick="test.submit()" value="test">


前端表单的实际结构对服务器端安全性没有实际影响。这完全取决于一旦数据被传递,服务器将如何处理数据。使用Firebug、Chrome开发工具等,任何用户都可以在您的网站上从头开始编写、修改和提交表单。或者他们可以直接发送
post/get
变量,而不必看到您的表单前端验证和结构完全是为了提示和帮助用户,而不是为应用程序提供安全性。永远不要相信它会受到用户的尊重

还有,为什么不使用

<input type="submit" value="test">

而不是

<input type="reset" onclick="test.submit()" value="test">


任何危险都完全取决于您如何处理收到的数据。如果你完全忽视它,就没有危险。如果你用它做了什么,可能会有,但这取决于你在做什么。任何危险都完全取决于你对收到的数据做了什么。如果你完全忽视它,就没有危险。如果你用它做了一些事情,可能会有,但这取决于你在做什么。“除了提交和重置可以由客户端更改”-什么?编辑这些内容就像打开控制台并单击输入的
属性一样简单。“如果你只是将字段抛出一个条件项,那么你不需要过滤”真的吗?因此
1或TRUE
从TBL中删除,其中ID=1或TRUE
(转义引号和类似的情况也是如此)。不过,使用预先准备好的语句是另一回事。据我所知,浏览器忽略了这些语句。也许我应该把我的回答改得更好,但谁在乎这两个呢?不是真的。当您通过
form.submit()
提交表单时,提交按钮不会序列化,但当您通过具有
名称
属性的提交按钮提交表单时,其
值也将发送到PHP。当表单中有多个submit按钮并且被一些php框架使用时,这非常有用。谢谢你告诉我:)“除了提交和重置可以由客户端更改”-什么?编辑这些内容就像打开控制台并单击输入的
属性一样简单。“如果你只是将字段抛出一个条件项,那么你不需要过滤”真的吗?因此
1或TRUE
从TBL中删除,其中ID=1或TRUE
(转义引号和类似的情况也是如此)。不过,使用预先准备好的语句是另一回事。据我所知,浏览器忽略了这些语句。也许我应该把我的回答改得更好,但谁在乎这两个呢?不是真的。当您通过
form.submit()
提交表单时,提交按钮不会序列化,但当您通过具有
名称
属性的提交按钮提交表单时,其
值也将发送到PHP。当表单中有多个submit按钮并且被一些php框架使用时,这非常有用。感谢您告诉我:)唯一的验证是,我们不解释php代码,但如果服务器上没有
post
处理程序,用户可以“编辑”html代码或添加自己的js代码(即,服务器上没有负责interpr的代码)