mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	dont allow login with invalid ip, escape ip display on user/info page
This commit is contained in:
		| @@ -6,6 +6,7 @@ var passport = require('passport'); | ||||
| var nconf = require('nconf'); | ||||
| var validator = require('validator'); | ||||
| var _ = require('lodash'); | ||||
| var ipaddr = require('ipaddr.js'); | ||||
|  | ||||
| var db = require('../database'); | ||||
| var meta = require('../meta'); | ||||
| @@ -289,26 +290,30 @@ authenticationController.doLogin = function (req, uid, callback) { | ||||
|  | ||||
| authenticationController.onSuccessfulLogin = function (req, uid, callback) { | ||||
| 	var uuid = utils.generateUUID(); | ||||
| 	req.session.meta = {}; | ||||
|  | ||||
| 	delete req.session.forceLogin; | ||||
|  | ||||
| 	// Associate IP used during login with user account | ||||
| 	user.logIP(uid, req.ip); | ||||
| 	req.session.meta.ip = req.ip; | ||||
|  | ||||
| 	// Associate metadata retrieved via user-agent | ||||
| 	req.session.meta = _.extend(req.session.meta, { | ||||
| 		uuid: uuid, | ||||
| 		datetime: Date.now(), | ||||
| 		platform: req.useragent.platform, | ||||
| 		browser: req.useragent.browser, | ||||
| 		version: req.useragent.version, | ||||
| 	}); | ||||
|  | ||||
| 	async.waterfall([ | ||||
| 		async.apply(meta.blacklist.test, req.ip), | ||||
| 		function (next) { | ||||
| 			meta.blacklist.test(req.ip, next); | ||||
| 		}, | ||||
| 		function (next) { | ||||
| 			user.logIP(uid, req.ip, next); | ||||
| 		}, | ||||
| 		function (next) { | ||||
| 			req.session.meta = {}; | ||||
|  | ||||
| 			delete req.session.forceLogin; | ||||
| 			// Associate IP used during login with user account | ||||
| 			req.session.meta.ip = req.ip; | ||||
|  | ||||
| 			// Associate metadata retrieved via user-agent | ||||
| 			req.session.meta = _.extend(req.session.meta, { | ||||
| 				uuid: uuid, | ||||
| 				datetime: Date.now(), | ||||
| 				platform: req.useragent.platform, | ||||
| 				browser: req.useragent.browser, | ||||
| 				version: req.useragent.version, | ||||
| 			}); | ||||
|  | ||||
| 			async.parallel([ | ||||
| 				function (next) { | ||||
| 					user.auth.addSession(uid, req.sessionID, next); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user