首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能做些什么来防止在数组中插入代码?

我能做些什么来防止在数组中插入代码?
EN

Stack Overflow用户
提问于 2017-06-18 00:09:24
回答 2查看 60关注 0票数 1

就我的Template.JS使用数组和克隆的能力而言,我担心黑客可能会将恶意脚本输入到数组中,并使用恶意数据输入创建另一个克隆框。如何防止有人向阵列中输入恶意数据?

下面是我要做的事情,就是克隆框、数组数据和“可操作”按钮。

https://fiddle.jshell.net/NitroXAce/d1qro5g3/14/

如果有一个插件或脚本可以防止恶意数据出现在数组中,那就太棒了!我知道有一件事,你不能在输入中插入代码。但我担心任何浏览器中的console.log可能会干扰...?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-18 00:14:23

假设数据来自您的服务器,而不是用户输入,那么“黑客”所能做的最糟糕的事情就是侵入自己的浏览器。这一点并不是很重要。

也就是说,您不应该使用内联事件处理程序。

理想情况下,您应该将HTML传递给加载到DOM中的(有些人会认为使用createElement等构建它会更好),并将事件处理程序附加到一个包含元素- ie。使用事件委派。

但这就是实现细节。你的问题的关键答案是-假设一个可信的数据来源(即。不是用户生成的)-这样你就不需要担心“恶意”用户可能会放入什么内容。在接收表单提交时,您的服务器应该验证所发送的内容,以确保它有意义。

票数 2
EN

Stack Overflow用户

发布于 2017-06-18 00:22:18

我也遇到过类似的问题,现在我正在学习PHP来创建更安全的网页。但是,该数组只能在客户端使用控制台或类似工具进行编辑。因此,即使有人更改了该值,当另一个客户端加载该页面时,这些值仍然是相同的。也就是说,如果您要将值提交到另一个页面或服务器,则无论如何都必须使用服务器端语言,因此可以在服务器端语言中使用某种形式的RegEx,以防止任何修改的输入。

代码语言:javascript
复制
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$client_name)) {

  $error_message .= 'The First Name you entered does not appear to be valid.<br />';

}
if(strlen($error_message) > 0) {

died($error_message);

}

上面是我的PHP提交表单中的一个小示例,它检查以确保值只使用允许的字符,如果名称使用无效字符,则设置'$error_message‘。然后检查通常为空的'$error_message‘,如果它不为空或null,则脚本退出并将错误消息发布到页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44606655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档