我正在编写一个应用程序,我想让用户以这种方式学习javascript:
在后端服务器和Web浏览器之间只传输JSON数据。服务器不会对代码字符串执行任何操作,只会将其直接保存到数据库中。
这段代码可能会对服务器端造成任何损害吗?
答案 0 :(得分:3)
在server-side
上,没有。除非脚本在IE上运行并创建多个文件磁盘。或者向您的系统请求插入数十亿个新条目......
所以你必须小心处理请求(洪水控制),小心使用IE并注意SQL注入。
实施例
我正在谈论的请求可能是这样的:
ajax.post("page_save_js.ext", "code=flood");
然后每次运行时都会插入一个新代码,充斥服务器。 StackOverflow在很短的时间内使用验证码控制此洪水。
答案 1 :(得分:2)
如果它只是作为字符串存储在数据库中,则不会产生任何伤害。
它与存储任何其他字符串没什么不同。它只是那时的数据。
答案 2 :(得分:2)
任何时候你接受用户的输入,你必须检查以确保它不包含sql注入或js注入等内容。
因此,对您的服务器(sql注入可能会擦除/输出您的数据库)和您的用户(js注入可能将它们发送到恶意站点)可能是危险的
答案 3 :(得分:2)
您的服务器代码不会运行javascript,除非您以某种方式告诉它,这样不会导致问题。 (当然,您应该避免任何SQL注入问题。)
但是,如果您在页面中提供敏感信息(隐藏或其他方式),或者允许javascript在服务器上对方法进行ajax调用,那么这些可能是安全问题。
答案 4 :(得分:2)
使用nosql数据库只会让你对“SQL注入”无法攻击,但是有非常类似的QL注入攻击向量。因此,您仍然必须转义数据或使用数据安全API(相当于SQL世界中的预处理语句)。
在http://www.kalzumeus.com/2010/09/22/security-lessons-learned-from-the-diaspora-launch/上给出了NOSQL注入的一些示例(在该页面中搜索“NoSQL并不意味着没有SQL注入”)。
对于客户端:如果可能,您应确保仅将java脚本传递给上载它的用户,除非用户受信任。这包括登录表单上的CSRF检查。 Wikipedia failed on this in the past.