出于安全考虑,有没有办法在控制台中访问和打印(或嗅探)服务器和/或客户端JavaScript中的变量?
您是否认为可以安全地将密码存储在密码中以加密帐户敏感数据(然后对.js文件进行模糊处理)?
答案 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>
。