Anubis1982
Grünschnabel
Hallo, hab mal wieder eine Frage...
ich habe ein node.js script und in einer funktion möchte ich die exponentenschreibweise ausgrenzen (z.B. 1e+1) ergibt 10
mein Problem ist, auf meiner Seite kann man coins setzen und damit ein Spiel spielen, doch wenn man in einem Javascript von der Seite
bei den beiden "amount": amount, es zu "amount": "1e+1", ändert dann setzt man 1 coin aber die Seite denkt man setzt 10 Coins
so und nun die dazugehörige funktion in dem Node.js script...
Wie kann ich dort verhindern, das man diese hintertür benutzen kann?
ich vermute das das irgendwo in diesem Teil
hinterlegt werden muss....
ich habe ein node.js script und in einer funktion möchte ich die exponentenschreibweise ausgrenzen (z.B. 1e+1) ergibt 10
mein Problem ist, auf meiner Seite kann man coins setzen und damit ein Spiel spielen, doch wenn man in einem Javascript von der Seite
Javascript:
$(".betButton").on("click", function() {
var lower = $(this).data("lower");
var upper = $(this).data("upper");
var amount = str2int($("#betAmount").val());
if ($("#settings_dongers").is(":checked")) {
amount = amount * 1000;
}
amount = Math.floor(amount);
var conf = $("#settings_confirm").is(":checked");
if (conf && amount > 10000) {
var pressed = false;
bootbox.confirm("Are you sure you want to bet " + formatNum(amount) + " credits?<br><br><i>You can disable this in settings.</i>", function(result) {
if (result && !pressed) {
pressed = true;
send({
"type": "bet",
"amount": amount,
"lower": lower,
"upper": upper,
"round": ROUND
});
LAST_BET = amount;
$(this).prop("disabled", true);
}
});
} else {
send({
"type": "bet",
"amount": amount,
"lower": lower,
"upper": upper,
"round": ROUND
});
LAST_BET = amount;
$(this).prop("disabled", true);
}
return false;
});
bei den beiden "amount": amount, es zu "amount": "1e+1", ändert dann setzt man 1 coin aber die Seite denkt man setzt 10 Coins
so und nun die dazugehörige funktion in dem Node.js script...
Javascript:
function setBet(m, user, socket) {
if((usersBr[user.steamid] !== undefined) && (usersBr[user.steamid] == br)) {
socket.emit('message', {
type: 'error',
enable: true,
error: 'You have already placed '+usersBr[user.steamid]+'/'+br+' bets this Round.'
});
return;
}
if((m.amount < minbet) || (m.amount > maxbet)) {
socket.emit('message', {
type: 'error',
enable: true,
error: 'Invalid bet Amount.'
});
return;
}
if(pause) {
socket.emit('message', {
type: 'error',
enable: false,
error: 'Betting for this Round are closed.'
});
return;
}
var start_time = new Date();
query('SELECT `balance` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) {
if((err) || (!row.length)) {
logger.error('Failed to find DB');
logger.debug(err);
socket.emit('message', {
type: 'error',
enable: true,
error: 'You are not DB'
});
return;
}
if((m.lower == 0 && m.upper == 0) || (m.lower == 1 && m.upper == 7) || (m.lower == 8 && m.upper == 14)) {
if(row[0].balance >= m.amount) {
query('UPDATE `users` SET `balance` = `balance` - '+parseInt(m.amount)+' WHERE `steamid` = '+pool.escape(user.steamid), function(err2, row2) {
if(err2) {
logger.error('Error in Withdraw');
logger.debug(err);
socket.emit('message', {
type: 'error',
enable: true,
error: 'You don\'t have enough Diamonds!'
});
return;
}
query('INSERT INTO `bets` SET `user` = '+pool.escape(user.steamid)+', `amount` = '+pool.escape(m.amount)+', `lower` = '+pool.escape(m.lower)+', `upper` = '+pool.escape(m.upper), function(err3, row3) {
if(err3) {
logger.error('Error in DB');
logger.debug(err);
return;
}
var end = new Date();
if(usersBr[user.steamid] === undefined) {
usersBr[user.steamid] = 1;
} else {
usersBr[user.steamid]++;
}
if(usersAmount[user.steamid] === undefined) {
usersAmount[user.steamid] = {
'0-0': 0,
'1-7': 0,
'8-14': 0
};
}
usersAmount[user.steamid][m.lower+'-'+m.upper] += parseInt(m.amount);
currentSums[m.lower+'-'+m.upper] += m.amount;
socket.emit('message', {
type: 'betconfirm',
bet: {
betid: row3.insertId,
lower: m.lower,
upper: m.upper,
amount: usersAmount[user.steamid][m.lower+'-'+m.upper]
},
balance: row[0].balance-m.amount,
mybr: usersBr[user.steamid],
br: br,
exec: (end.getTime()-start_time.getTime()).toFixed(3)
});
users[user.steamid].balance = row[0].balance-m.amount;
io.sockets.emit('message', {
type: 'bet',
bet: {
amount: usersAmount[user.steamid][m.lower+'-'+m.upper],
betid: row3.insertId,
icon: user.avatar,
lower: m.lower,
name: user.name,
rollid: currentRollid,
upper: m.upper,
user: user.steamid,
won: null
},
sums: {
0: currentSums['0-0'],
1: currentSums['1-7'],
2: currentSums['8-14'],
}
});
currentBets.push({
amount: m.amount,
betid: row3.insertId,
icon: user.avatar,
lower: m.lower,
name: user.name,
rollid: currentRollid,
upper: m.upper,
user: user.steamid,
});
logger.debug('Bet #'+row3.insertId+' Ammount: '+m.amount);
checkTimer();
})
});
} else {
socket.emit('message', {
type: 'error',
enable: true,
error: 'You don\'t have any Coins'
});
}
} else {
socket.emit('message', {
type: 'error',
enable: true,
error: 'Nice try to hack this Game, but sorry you are banned NOW !!!'
});
query('UPDATE `users` SET `balance` = 0 WHERE `steamid` = '+pool.escape(user.steamid));
query('UPDATE `users` SET `ban` = 1 WHERE `steamid` = '+pool.escape(user.steamid));
}
});
}
Wie kann ich dort verhindern, das man diese hintertür benutzen kann?
ich vermute das das irgendwo in diesem Teil
Javascript:
if((m.amount < minbet) || (m.amount > maxbet)) {
socket.emit('message', {
type: 'error',
enable: true,
error: 'Invalid bet Amount.'
});
hinterlegt werden muss....