As far as the lock-down, it looks to me like they just set the relevant database tables to read only in some way (either by granting read only privileges to the frontend's database user, or, simply making the db files read only..) An appropriate response until they find and patch the vulnerability.
No amount of anything in the front end (two factor, pin codes, etc) will mitigate it if the database is easily compromised via sql injection. I am hoping a re-design of the database is in the cards - there are ways to build the back-end to mitigate or eliminate these types of possibilities.
I agree with you however if the whole database is read only why are they still encouraging us to mine? This is the bit that is worrying me and the reason I have moved my one little miner elsewhere.
On your second point, it is the front end design that allows sql injection attacks to happen, not database design. The database just does whatever it is told to do by the website or a command line interface. If this was an injection attack then it was either a coding error in the website or an out of date/misconfigured PHP installation that allowed the "hackers" to most likely dump the database and then go through the tables to identify the payout addresses and the mechanism used to initiate manual payouts. They would have done this by manipulating the address bar in a browser by adding special characters or by experimenting with special characters or buffer overflows with very long entries in text entry fields on the website. All of this would be captured in the access logs for the website unless they were able to gain shell access and modify/delete the logs.
I suspect the reason the site is still locked down is because the guys are still working out how the attack happened and the best way to prevent it from happening again.
Note that the site code doesn't look particularly professional. Should we really be able to view the password policy?
password1: {
minlength: 6,
maxlength: 20,
required: true
Hmmm, nice use of language there!!
$('#accountTab a').bind('click', function (e) {
e.preventDefault()
//alert('fuuuuck');
And again..
$('#statsTab a').bind('click', function (e) {
e.preventDefault()
//alert('fuuuuck');