0

我开发了一个网站(jQuery + .NET/C#),它已经准备好了 90%。在发布它之前,我决定面对事实,我向自己承认代码并不是完全安全的。老实说,它几乎不是黑客安全的。这是因为我一直在练习一些不良的 Web 编程习惯(比如过于依赖客户端脚本而不是将其放入服务器端)。

更准确地说,我猜我使用了太多的 jQuery,现在我看到我所有的 webmethods 都暴露在 .js 文件中。我已经缩小和混淆了,但这并不能阻止一个坚定的作弊者得到我所有的东西。这是一点。

另一个问题是我有一些网络方法可以从我的数据库中返回大量数据。不是机密数据,而是我的系统生成的一些不错的数据,我不希望任何外部网站调用它并将其显示为他们的材料。

我想到的解决方案之一是在服务器端生成所有 html 并将其返回给 .js,然后将其附加到他各自的元素(这样我会隐藏它之外的所有智能)但它并不能解决所有问题我上面提到的问题。

所以我的问题是......你们认为使用 ASP.NET 控件重写所有内容是否更安全,或者有没有办法使用我拥有的代码使其真正安全(比如避免对我的 webmethods 的外部调用)?

我知道不看代码就很难发表意见,但它是巨大的!这就是我所说的(太多的客户端脚本,很少的服务器端)。

提前致谢。

4

2 回答 2

1

首先,您可以检查服务器端,哪个域正在调用您的后端-> 拒绝不允许的域。(检查这张票

为了减少 javascript 的魔力,您可以按照您所说的将逻辑移到后端。

也许有一些技巧可以保存你的 javascript 代码(看看这个

于 2013-02-26T12:54:50.390 回答
0

如果您想要一个完全安全的网站,那么您将感到失望。你可以让它变得最难。

这对于在服务器端处理然后提供给客户端的站点是最简单的。但我也建议不要将所有内容都移到服务器上,因为毕竟服务器必须处理你对它发出的每一个请求。

我经历过,将所有数据服务和评估逻辑服务器端和渲染,以及简单的处理逻辑客户端端,是“最简单的”。从而以最小的安全风险结合两种技术的优势。例如,在 AJAX 调用之后提供一些数据(如果您甚至想这样做),您可以在success:orfailure:以及after:或类似关键字的帮助下调用渲染、更新和处理逻辑客户端。

尝试一些新事物。如果您将其全部转移到一种技术/流程中,您将不得不利用该流程的缺点。把事情分开!

于 2013-02-26T12:56:51.397 回答