3 ms·
>but I’m not sure a CRUD app will. Considering most corporate websites are CRUD apps, and they keep getting pwned via some bug or vulnerability and millions of
by SkyMarshal 5y ago
>but I’m not sure a CRUD app will.
Considering most corporate websites are CRUD apps, and they keep getting pwned via some bug or vulnerability and millions of private user information stolen and pawned off in the black market, I don't think that's an assumption we can make anymore.
That said, full-on formal methods may still be overkill. A web framework built in a language with a strong type system and input sanitation via type-checking and similar safeguards may suffice.
But that's closer to formal methods than most of the web dev industry is accustomed to.
- tsimionescu 5y agoI'm not sure type safety is the right key here. Rather, better defaults in web and SQL frameworks, even in a dynamic language, would get you most of the way there. You can even use dynamic types to mandate that input is sanitized - a crash is much louder than SQL injection or XSS.
- nicoburns 5y ago> You can even use dynamic types to mandate that input is sanitized If you're using types to mandate that input is santized, then that sounds like type safety to me!
- Akronymus 5y agoGood defaults are one of the most important, yet overlooked parts of programming languages IMO. For example, no nullability or mutability by default is one of the main reasons why I like f#. https://onor.io/2012/03/27/why-the-defaults-matter/ https://onor.io/2012/03/27/why-the-defaults-matter/
- SkyMarshal 5y ago>Rather, better defaults in web and SQL frameworks, even in a dynamic language, would get you most of the way there. We’ve had 20+ years of building websites, and either we have sane defaults by now but they’re not enough, or we still don’t have sane defaults in our web frameworks. Either way, that this problem persists given the damage it’s enabling, suggests we haven’t addressed the root cause yet. Web development is still a tarpit, which strong type systems can mitigate in unique ways.
- hwayne 5y agoMost of the recent egregious hacks I can think of were compromised by things like out-of-date software, poor access control, stuff on the configuration level. Static analysis might help here, but I don't think formal methods is the lowest-hanging fruit.