访问NodeJS变量?

时间:2017-08-05 15:38:22

标签: javascript node.js security

出于安全考虑,有没有办法在控制台中访问和打印(或嗅探)服务器和/或客户端JavaScript中的变量?

您是否认为可以安全地将密码存储在密码中以加密帐户敏感数据(然后对.js文件进行模糊处理)?

3 个答案:

答案 0 :(得分:0)

您的意思是记录变量吗?你可以     console.log(variable) 在你的代码中排成一行。它将显示在您正在运行的任何服务器的终端中。对于已部署的服务器,它实际上取决于您托管的位置,但console.log将显示在日志中,例如,您可以执行类似

的日志

heroku日志

但是否则你不应该在运行时从外部访问变量,原因很明显。

答案 1 :(得分:0)

你永远不应该在js文件中存储变量。您可以在将应用程序作为命令行参数启动时输入密码,而不是将其存储在js文件中。这样,只有已经启动应用程序的人才会知道密码短语的价值。并且没有人可以嗅探或访问。您可以将命令行参数作为

传递
node app.js <passphrase>

您可以随时随地使用

在您的应用程序中访问此密码
console.log(process.argv)

答案 2 :(得分:0)

通常,您不希望在客户端存储密钥,因为它将由公众使用。有些服务确实提供了客户端密钥,这些密钥很好,因为它们是特定于客户端的。

在服务器端,密钥可以自由使用。但是,它们不应该硬编码到您的源代码中。相反,将它们注入Node环境,并在源代码中使用它们include 'includes/config.php'; $get_album_tracks_sql = "SELECT * FROM songs ORDER BY track_number ASC"; $album_tracks_query = mysqli_query($dwn_conn, $get_album_tracks_sql); $playList = array(); while($album_tracks_result = mysqli_fetch_array($album_tracks_query)){ $track = json_encode(array('mp3' => $album_tracks_result['file_path'], 'title'=> $album_tracks_result['track_name'], /* FILL IN THE REST */)); array_push($playList, $track); } ?> <script> jQuery(document).ready(function ($) { $('.music-player-list').ttwMusicPlayer(<?php echo json_encode($playList); ?>, { currencySymbol:'$', buyText:'BUY', tracksToShow: 10, autoplay:false, ratingCallback:function(index, playlistItem, rating){ //some logic to process the rating, perhaps through an ajax call }, jPlayer:{ swfPath: "http://www.jplayer.org/2.7.0/js/", supplied: "mp3", volume: 0.8, wmode:"window", solution: "html,flash", errorAlerts: true, warningAlerts: true } }); }); </script>