Common security issues with crypto websites and APIs
introvertmac.wordpress.com
introvertmac.wordpress.com
Even Bitcoin.org has stopped recommending web-based wallets, like they were doing just a couple of years ago.
The best alternative is hardware wallets, but a good middle-ground is using self-managed, 'semi-cold' software wallets like Electrum, Armory, etc. [1][2]
[0] https://selfkey.org/list-of-cryptocurrency-exchange-hacks/
[0] https://www.bleepingcomputer.com/news/security/physical-addr...
This post is not about security vulnerabilities in blockchain, smart contract or crypto protocols.
Session time-out due to inactivity is critical.
In fact, “hacking” companies like NSO steal authentication tokens of services like gmail that DELIBERATELY do not log you out for inactivity for periods like 30 days.
I think it is a personally reasonable threat model to consider anyone capable of stealing a token off of my device as capable of stealing my password because if a website has other vulnerabilities allowing credentials to be stolen or misused without my device being compromised then it is a defense in depth technique and it is to cover the ass of the website operator and not me. I shouldn't be liable for a website owner's screw up there.
Now, a genuine two factor authentication changes the picture there and actually adds some security for ultra risky scenarios (like transferring money). But instead of invalidating my session, just ask for a token on every risky transaction. There I can understand a bank wanting to cover their liability a bit more.
Disabled input fields are fine - so long as they are ignored on the backend - and there's nothing in this article saying they aren't.
Nothing here seems specific to "crypto" websites.
Sorry for any confusion created by the title!
I've added added the public bug bounty website for the last one!
Depending on your set-up you may need to use one or both of those headers. For example, you might use CloudFlare for some requests and CloudFront for others, as you may find one or the other to be cheaper or faster for specific content. So you may need to allow both headers at your origin's reverse proxies, but distinguish between which to accept and where to redirect the traffic based on the Virtual Host and request URI.
Seriously, at the end of 2020 this kind of advice is necessary?
Most of the field has never heard this advice before.
For any given bit of common wisdom, to many people it’s completely new advice: https://xkcd.com/1053/
The whole idea is validate the user inputs - be it disabled fields or normal inputs
I’m not trying to nitpick here, my confusion was genuine. These sorts of statements are hugely misleading even for seasoned folks (“what if I missed something in disabled inputs? why crypto suffers from that?”), and in novice developers it creates magic recipe thinking instead of generic awareness that you never want to execute(user_input).
Validate for functional errors then sanitize for injection issues.
Hope it makes more sense now! Sorry for any confusion from previous comments or post