Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You have to think about Postel's law in terms of protocols and mistakes in your implementation. You assume your implementation isn't perfect and neither is the other. Do your best to be perfect and if you get something that isn't quite right, do your best to handle it well. That doesn't mean you don't validate inputs, it means that if data should come with a \n but instead comes with \n\r, you should treat it as a \n.


I think you miss their point which is that has led to a large number of security bugs. Because it is then path to exploits and sloppiness which then cannot be corrected because of backward compatibility or such.


Anyone else remember the time, years ago, when someone introduced a new performance feature to TCP, using an otherwise-unused bit in the header. Unfortunately, rolling it out turned into a giant clusterfuck because many routers on the internet interpreted "this bit is unused" as "this bit will always be zero"?


Ah yes, the fyranny of the middlebox.


Postel's Law isn't why we can't correct errors for backwards compatibility reasons.

We can't correct those because backwards compatibility is necessary to creating a global network that lasts decades. It's the railway effect... One simply can't expect every player to update their architecture religiously because they can't afford to, therefore what is made public tends to stick around for ages, and anything that fails to recognize that stickiness (IPv6 is my go to example) does so at its own peril.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: