我正在尝试加密我服务器上的数据库与devExtreme中使用javascript的移动应用程序之间的通信。他们的支持团队提供了一个涉及使用base_64encode的示例。这是一种安全的方法吗?以下是DevExtreme的示例:Example of Authentication Request
我无法理解这会有多安全。根据我的理解,移动应用程序会加密数据(因此应用程序具有加密的密钥/解密方法。如果有人访问应用程序的源代码,是否有人能够找到此密钥?)此加密然后将数据发送到服务器并解密。如果身份验证失败,则会发送一条消息通知。
除此之外,使用SSL连接将在应用客户端和服务器之间创建专用连接。
抱歉,我在那里问了很多问题!让我总结一下:
在devextreme中使用base64_encode是否安全?我做了一些研究 并且看到很多文章说这很容易破解。
由于密码和用户名必须加密/解密 在应用程序端以及服务器端,不会这个 如果应用用户能够访问来源,则会导致问题 码?
是否通过SSL连接发送了header / string / json文件? 如果我要使用SSL,是否需要使用加密?
- 醇>
为了建立安全的方法,有什么指导方针(如果有的话) 移动应用?类似于This guide的东西,但对于移动来说 应用
提前致谢。
答案 0 :(得分:2)
base64 不是加密。这是编码。 (参见例如difference between encoding and encryption)解码编码数据是微不足道的。因此,在要求加密的情况下单独使用是不安全的,例如交换私人数据。 base64 很容易通过视觉识别,所以如果有人拿到你的HTTP数据包,他们就会得到你的密码。
如果您使用未破解的算法进行加密,并且攻击者不知道您的私钥 - 那么您就是好的。在那种情况下,您使用什么算法的知识对攻击者没有多大帮助。参见例如encryption了解更多详情。
使用SSL应该足够了。参见例如how secure is SSL。不需要两次加密相同的东西。
DevExtreme是一个HTML5 / JS框架,因此您应该寻找有关保护AJAX等内容的材料。还取决于您使用服务器端的内容。我想这一切都归结为保护易受攻击的数据传输,以及您的服务器端应用程序,无论您在那里使用什么。对这个问题帮助不大。
还有一件事:正如我在pt中写的那样。 4,DevExtreme是一个HTML / JS框架。一旦有人下载你的应用程序,他们就已经拥有了代码,因为DevExtreme应用程序不是这样编译的 - 它们只是网络应用程序,因此用户唯一无法访问的是服务器端代码。
答案 1 :(得分:0)
这种方法是安全的,因为访问Web服务的必要凭据会传递给每个HTTP Web请求。使用HTTPS至关重要,以便通过网络加密凭据。 Web服务必须在发送响应之前检查每个请求的传递凭据。该示例将用户名和密码编码为base64,以确保所有字符(包括在随机生成的密码中找到的特殊字符)在标头中有效(http协议)