Advertisement
Guest User

HTML console - core v 0.3

a guest
Jun 19th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. "use strict";
  2. const port = 4500;
  3.  
  4. const http = require('http');
  5. const url = require('url');
  6. const fs = require('fs');
  7. const sys = require('sys');
  8. const execc = require('child_process').exec;
  9. var consoleHTML = "";
  10. const consolePassword = "EmDriveEmDrive23";
  11. var authorised = false;
  12.  
  13. var sessions = new Map();
  14.  
  15.  
  16.  
  17. const session = function (ip){
  18. this.ip = ip;
  19. this.tries = 0;
  20. }
  21.  
  22.  
  23. //Preparing console HTML file
  24. fs.readFile('console.html', 'utf8', function (err,data) {
  25. if (err) {
  26. return console.log(err);
  27. }
  28. consoleHTML = data;
  29. //console.log(consoleHTML);
  30. crtServ();
  31. console.log("Michael Home Server Command Center v0.1 is running.");
  32. console.log("Listening on port " + port + ", HTTP protocol.");
  33. });
  34.  
  35.  
  36.  
  37. function crtServ(){
  38. http.createServer(function (req, res) {
  39. console.log("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
  40. console.log("Request: " + req.method + " to " + req.url);
  41. //console.log(req.headers);
  42. res.writeHead(200, "OK");
  43. //getting packet body
  44. if (req.method === "POST"){
  45. req.on('data', function(chunk){
  46. console.log("Received command: " + chunk.toString());
  47. console.log(chunk.toString());
  48. if ( (sessions.get(req.connection.remoteAddress) != -1) ){
  49. console.log("IP:" + req.connection.remoteAddress );
  50. console.log("Known user: " + sessions.has(req.connection.remoteAddress) );
  51.  
  52. console.log("Pswd failures:" + sessions.get(req.connection.remoteAddress));
  53.  
  54.  
  55. if (chunk.toString() != consolePassword) {
  56. res.write( "Wrong password " );
  57. if (sessions.has(req.connection.remoteAddress)) {
  58. let failedTries = sessions.get(req.connection.remoteAddress);
  59. console.log("failedTries var: " + failedTries);
  60. if (failedTries === 3){
  61. setTimeout(function(){
  62. sessions.set(req.connection.remoteAddress, 0);
  63. console.log("Unlock: " + req.connection.remoteAddress);
  64.  
  65. }, 1080000);
  66.  
  67.  
  68. }
  69. if (failedTries > 3) {
  70. console.log ("Blocked account");
  71. res.write( "3 failed tries. Your session is blocked for next 5 minutes" );
  72. }
  73. failedTries++;
  74. sessions.set(req.connection.remoteAddress, failedTries);
  75. } else {
  76. sessions.set(req.connection.remoteAddress, 2);
  77. }
  78. res.end();
  79. } else {
  80. sessions.set(req.connection.remoteAddress, -1);
  81. res.write( "Logged in!" );
  82. req.connection.remoteAddress
  83. authorised = true;
  84. res.end();
  85. }
  86.  
  87. } else if (chunk.toString() != ""){
  88. var incomingCommand = execc(chunk.toString(), function (err, stdout, stderr){
  89. if (!err){
  90. res.write( stdout.replace(/</g,"&lt").replace(/ /g,"&nbsp&nbsp").replace(/(?:\r\n|\r|\n)/g, '<br />') );
  91. res.end();
  92. } else {
  93. res.write( stderr.replace(/</g,"&lt").replace(/ /g,"&nbsp&nbsp").replace(/(?:\r\n|\r|\n)/g, '<br />') );
  94. res.end();
  95. }
  96.  
  97. });
  98. } else {
  99. res.write( "No command received from client" );
  100. res.end();
  101. }
  102.  
  103. });
  104. } else {
  105. res.write(consoleHTML);
  106. res.end();
  107. }
  108.  
  109. //console.log("consoleHTML");
  110.  
  111. }).listen(port);
  112. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement