在构建的应用程序中查看反应本机源代码是否可行?

时间:2017-05-05 12:10:15

标签: xamarin react-native

我是一名开发人员,希望能够制作跨平台应用程序并且遇到了Xamarin和React Native。

由于Xamarin使用的语言是C#,这意味着必须在运行应用程序之前编译代码。但是,React Native使用JavaScript。由于JavaScript源代码可以在网站上看到,并且不像PHP那样下载到网页中,这意味着客户端上的用户可以轻松查看源代码。如果用户能够轻松获取源代码并且有问题的应用程序连接到数据库,这意味着他们将能够查看密码,从而使应用程序不安全。

问题是,如果我在哪里创建一个使用React Native连接MySQL的应用程序,用户是否能够像在网页上一样轻松查看源代码,或者像Xamarin一样编译,查看源代码更难?

1 个答案:

答案 0 :(得分:6)

javascript无法编译为本机代码。它使用桥接器在javascript / native组件之间进行通信。 JS是混淆的,但这是关于它的。你不应该在客户端存储任何秘密。

请参阅:https://github.com/facebook/react-native/issues/1093 '正如@vjeux所说,我们没有立即计划为JS捆绑文件添加加密,是的,根据目前推荐的捆绑说明,您的JS将作为明文包含在内,可以相对轻松地提取和去混淆。 / p>

他接着提到了一种对bases编码jsbundle的方法,以阻止“随意”的黑客,但后来解释说它不会阻止“坚定的黑客”。

您不应将客户端直接连接到数据库。您需要一个安全的服务器来处理身份验证,并检索和验证数据库查询。

客户端没有任何安全措施。因此,在使用它们调用db之前,必须验证所有数据库查询。请参阅:https://www.acunetix.com/websitesecurity/sql-injection/'SQL注入只需要存在两个条件 - 使用SQL的关系数据库,以及直接在SQL查询中使用的用户可控输入。'

通过允许客户端直接连接到数据库,您无法阻止最早的攻击。<​​/ p>