Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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脚本的不同方式?_Javascript_Php_Forms - Fatal编程技术网

将不受信任的数据传递到Javascript脚本的不同方式?

将不受信任的数据传递到Javascript脚本的不同方式?,javascript,php,forms,Javascript,Php,Forms,我有一个Javascript函数,它通过submission按钮从表单onClick检索数据 function valueCheck() { var cCheck = document.getElementById("c"); var cChoice = chemCheck.options[chemCheck.selectedIndex].value; var coCheck = document.getElement

我有一个Javascript函数,它通过submission按钮从表单
onClick
检索数据

 function valueCheck()
 {
            var cCheck = document.getElementById("c");
            var cChoice = chemCheck.options[chemCheck.selectedIndex].value;

            var coCheck = document.getElementById("co");
            var coChoice = compCheck.options[compCheck.selectedIndex].value;

            var gCheck = document.getElementById("g");
            var gChoice = geoCheck.options[geoCheck.selectedIndex].value;

            var mCheck = document.getElementById("m");
            var mChoice = mathCheck.options[mathCheck.selectedIndex].value;

            var pCheck = document.getElementById("p");
            var pChoice = physCheck.options[physCheck.selectedIndex].value;
根据这种说法,这是不安全的。使用
filter\u var($var,filter\u SANITIZE\u STRING)
和I
trim()
对数据进行“净化”,以便更好地测量。不幸的是,这是服务器端的,因此没有帮助。现在,如果有人要更改选择菜单中的值,则存在一个漏洞。我这样调用Javascript函数:

<input type="submit" name="submit" onClick="return function();">

它需要能够在客户端工作。在将数据传递给Javascript函数之前,如何过滤/清理数据?我需要在选择框中获取每个值,以便确保它们不相同。(请注意,上面没有显示整个函数,如果需要,我可以提供它。我认为问题主要在于我将数据放入脚本的方式)

我怎样才能避开这些数据

编辑:为了澄清我的问题,我想知道是否有一种安全的方法可以将客户端数据传递给javascript函数。这些数据还没有被清理(除了我可以对它做的所有客户端工作之外),所以我担心可能存在XSS漏洞。根据OSWAP XSS预防备忘单,我应该逃逸数据,但我也不太确定如何做到这一点。我不会将任何用户输入的数据呈现到浏览器中,它只是存储的


我想我终于明白了。OSWAP备忘单中提到的XSS漏洞是指将用户给定的数据放入HTML/其他内容中,并将其显示回页面?如果我只是将其保存到文本文件/csv文件中,我想我只需要确保服务器端的一切正常

如果只存储数据,则不存在XSS漏洞。斯特罗里的结束。但是,如果您不希望有人将10TB的数据放入您的服务器,您仍然应该检查输入数据的长度

一般来说,客户端只是一种幻觉。HTML和JavaScript就像遮住webapp(php或服务器端的任何东西)真实代码的窗帘。您可以永远不信任客户端数据,即使您使用JS对其进行过滤。有人基本上可以关闭JS或使用浏览器以外的其他软件与您的网站通信(如netcat或curl)

我建议你们观看,这样你们就可以想象黑客会如何攻击你们


请记住,过滤输入/输出数据服务器端

您的问题不够清楚。您通过JavaScript从表单中获取数据,以及如何使用它?问题在哪里?问题是我检索数据的方式。根据这篇文章,将不安全的数据传递到脚本中是不安全的。除非我错了,否则我仍在努力学习XSS。您的数据流是什么?客户端->服务器端->客户端?客户端->服务器端。所有这些表单真正做的就是通过表单收集数据并将其存储在text/csv文件中。不过,这些表格稍后会放在网站上。据我所知,你太担心了。用户来到您的页面,填写值,javascript在用户的浏览器中执行。用户将不得不主动尝试攻击自己。只有在重新显示表单时(例如由于验证失败),才需要关注XSS。谢谢@Scony!我去看看。