Our Scripts Vault contains many game scripts that you can use to create your own game!
If you don't have any logs and you want to find who abused an exploit you've only just realized, you're going to have a hard time. If duping an item requires visiting a particular page, or visiting two pages in quick succession, your web server logs will have *something* you can look at, you can compare player IP to any suspicious entries in your access.log. If only a particular item can be duped, look in the db for who has lots of them -- actually, you can do this for *any* item.What you always have in your favor is that cheaters quickly get greedy when they realize what they've got and think they're getting away with it. They won't just go up a level now and then, they'll go up ten today. They won't produce a handful of extra gold for the occasional purchase, they'll produce a million. Look for the outliers.
Quote from: Harkins on May 22, 2009, 10:05:25 AMIf you don't have any logs and you want to find who abused an exploit you've only just realized, you're going to have a hard time. If duping an item requires visiting a particular page, or visiting two pages in quick succession, your web server logs will have *something* you can look at, you can compare player IP to any suspicious entries in your access.log. If only a particular item can be duped, look in the db for who has lots of them -- actually, you can do this for *any* item.Could you use this approach rather than the method you outlined in your blog post? Obviously it would leave a few blind spots, such as how fast a person is leveling but is better overall to log or not?
If you don't have any logs and you want to find who abused an exploit you've only just realized, you're going to have a hard time. If duping an item requires visiting a particular page, or visiting two pages in quick succession, your web server logs will have *something* you can look at, you can compare player IP to any suspicious entries in your access.log. If only a particular item can be duped, look in the db for who has lots of them -- actually, you can do this for *any* item.
Quote from: Helderic on May 30, 2009, 04:31:33 AMQuote from: Harkins on May 22, 2009, 10:05:25 AMIf you don't have any logs and you want to find who abused an exploit you've only just realized, you're going to have a hard time. If duping an item requires visiting a particular page, or visiting two pages in quick succession, your web server logs will have *something* you can look at, you can compare player IP to any suspicious entries in your access.log. If only a particular item can be duped, look in the db for who has lots of them -- actually, you can do this for *any* item.Could you use this approach rather than the method you outlined in your blog post? Obviously it would leave a few blind spots, such as how fast a person is leveling but is better overall to log or not?(For those who didn't see it, what I outlined in my blog post was 1. Hadoop to do big processing of big custom logs and 2. Getting clients to log directly to S3 to save bandwidth.)I don't see this as "either-or" but as a series of steps you can take or not.You already have your basic Apache logs to start from and that beats nothing, yep. If you add custom logging of game data alongside it, great, that gives you more potential ways to find cheaters. If you get into stuff like Hadoop, you can deal with logging tons of data for tons of players and get actionable business analytics out of it. If you have clients log to S3, you can save some bandwidth.
One thing to log is any malformed GETs and POSTs.Hackers will malform the input far more than normal users ever do
Quote from: Barrikor on May 30, 2009, 08:43:40 PMOne thing to log is any malformed GETs and POSTs.Hackers will malform the input far more than normal users ever do What do you mean by that? $_REQUEST all data and if it's not something the script wanted log it?
if($HTTP_REFERER){CODEHERE}else{echo "We don't allow you to navigate through your browser! Please login again.";$account_class->logout();}
I useCode: [Select]if($HTTP_REFERER){CODEHERE}else{echo "We don't allow you to navigate through your browser! Please login again.";$account_class->logout();}Doesn't this dimish any ability to mess around with your $_POST's and $_GETS's?I'm not advanced programmer, so any clarification would be nice. As I rely on this system for my own game.
$HTTP_REFERER
<?php // for colors!!//Ain't$HTTP_REFERER //the same as$_SERVER['HTTP_REFFER']; //could you dogetenv('HTTP_REFFER');