2011-05-19 65 views
0

我正在计划一个项目,该项目将要求不同的网站将非个人数据传递到服务器进行处理/存储在数据库中。我的想法是设置 a 非常基本的线程化TCP服务器(在服务器后台运行的C#中) IIS,并且只需等待传入连接。当建立连接并传递数据时,我将让Web服务器确定是否保存到数据库。我计划将静态javascript文件保存到我的服务器(每个网站一个),并让不同的网站引用它们。这些js文件将处理从网站到我的服务器的数据传递。传递到远程服务器的网站

我从来没有做过这样的事情,所以我想知道在开发这个过程中是否需要实施任何主要的安全措施。数据不敏感,所以我不需要对它进行加密。

更具体的问题:

  1. 我打算一旦到达服务器(如注射保障)验证的参数,但是它典型的是还确认该请求或真实性的位置?
  2. 我应该试图隐藏JavaScript文件发送数据的位置吗?再一次,它不是敏感数据,我只关注我在处理javascript - >服务器时不熟悉的漏洞。
  3. 鉴于我想要完成的基础知识,有没有其他的方法可以解决这个问题?
+3

没有足够的信息,没有代码,没有尝试,没有问题解决。 – Fosco 2011-05-19 18:02:54

+0

这是一个关于理论和最佳实践的问题,而不是语法或逻辑问题。我在非常基本的层面上询问,当通过JavaScript传递数据给TCP服务器时,有什么需要注意的。 – 2011-05-19 18:09:57

+2

@ Eclyps19,我不理解Javascript/TCP部分。 Javascript(通常)是通过HTTP运行的Web语言。虽然HTTP运行在TCP之上,但它完全是抽象的,你不会想到它。当你说TCP时,我们其他人正在考虑套接字,但你只是在谈论一个网络服务器?如果你实际上在谈论TCP,那么你将不得不自己实现HTTP协议,这并不是我所推荐的。 – 2011-05-19 18:13:13

回答

1

(3)。鉴于我想要完成的基础知识,是否有另一种方法可以解决这个问题?

是的,是的。在任何情况下,我都不会考虑采用你列出的路线。它增加了大量的代码,从而实现零利益。

而是做到这一点:

  1. 让你的主服务器是一个普通网络服务器。让它直接向客户端提供JavaScript文件。
  2. 其他网络服务器应该只包含一个脚本引用到你的服务器托管的JavaScript。这与谷歌跟踪的工作原理,甚至jQuery的交付方式没有什么不同。
  3. 您的主服务器还应该有一组暴露的Web服务。这将接受处理的信息。无论您使用通用处理程序(.ashx),Web服务(.asmx)还是Windows通信基础(.wcf)都不重要。

在任何情况下,您都不打扰在javascript中编写tcp级别代码。你会把你的头发拉出来,最终维护这个的人会在不久的将来某个时候删除它。

使用传统手段。没有理由按照您确定的方式进行操作。

除此之外,阅读@Frug的答案。无论如何,只要它到达浏览器,就不能信任javascript。它将被读取,打开并可能被修改。您唯一能做的就是使用SSL来确保流量不会在您和最终客户端浏览器之间被捕获或修改。

+0

谢谢你的回应。我没有提到我曾经计划在C#中构建TCP服务器,并且只是在后台将其作为服务运行。我对这种混乱表示歉意。正如你在第二点所说的那样,我计划简单地在网站上添加一个引用到我的js文件中,并且每个文件都包含特定于他们正在引用的网站的代码。我习惯于在锁定的环境中进行编码,因此处理打开的连接(如通过js)对我来说仍然是新的。通过我的澄清,通过我自己的基于应用程序/服务的TCP服务器捕获数据看起来可以接受吗? – 2011-05-19 18:48:10

+0

@ Eclyps19,Web服务器的全部目的是处理HTTP流量。我真的不建议你自己重建车轮。除非你使用Java或Flash,否则你只能使用纯HTTP流量,所以让IIS或Apache处理复杂的连接,握手,过滤等。 – 2011-05-19 18:54:52

+0

有意义并节省时间。我会继续使用它来处理数据。谢谢你们俩。 – 2011-05-19 18:57:38

0

没有什么具体的事情需要注意,因为没有什么可以做的,以确保JavaScript的安全性不会被修改......所以在假设下他们可以重写您的JavaScript。这意味着您需要确保从sql注入清理服务器端的输入。

如果它不敏感并且没有大量数据,您甚至可以通过让您的JavaScript将它作为查询字符串(如get方法表单)一样传递给它。调试以这种方式发送的东西可能非常简单。

+0

我喜欢简单的将数据放入URL中,但我需要将数据无缝地推出,并且我推送的服务器与网站运行的服务器不同,所以我需要无论如何,一些其他的幕后处理工作可以让数据发送出去。 – 2011-05-19 18:28:17

+0

服务器托管页面应该没有关系。如果您只需将简单的非敏感数据传递给服务器,您可以调用www.yourpage.com/process.php?value=1这样的页面,然后在process.php中读取值并按照您的需要进行处理。这种事情对于JavaScript来说很容易实现,因为您只需在URL末尾添加字符串,而不必担心发布表单。缺点是它不安全,任何人都可以通过这种方式传递数据。但如果这不是问题,我不会看到一个问题。 – Frug 2011-05-19 18:51:37