Live data from Hacker News

Writing "/etc/hosts" breaks the Substack editor

scalewithlee.substack.com

341–350 of 370 posts

Re: Writing "/etc/hosts" breaks the Substack editor

#341
I once helped maintain some PHP software that was effectively a CMS. You'd drop a little PHP snippet into any page (e.g., that you make with Dreamweaver) and it would automatically integrate it with the CMS functionality.

We had unending trouble with mod_security. The worst issue I can remember was that any POST request whose body contained the word "delete" was automatically rejected. That was the full rule. To this day I still can't imagine what the developers were thinking.

Re: Writing "/etc/hosts" breaks the Substack editor

#344

The people configuring WAF rules at CDNs tend to do a poor job understanding sites and services that discuss technical content. It's not just Cloudflare, Akamai has the same problem. If your site discusses databases then turning on the default SQL injection attack prevention rules will break your site. And there is another ruleset for file inclusion where things like /etc/hosts and /etc/passwd get blocked. I disagree…

> The people configuring WAF rules at CDNs tend to do a poor job understanding sites and services that discuss technical content

They shouldn't be doing that job at all. The content of user data is none of their business.

Re: Writing "/etc/hosts" breaks the Substack editor

#345

The people configuring WAF rules at CDNs tend to do a poor job understanding sites and services that discuss technical content. It's not just Cloudflare, Akamai has the same problem. If your site discusses databases then turning on the default SQL injection attack prevention rules will break your site. And there is another ruleset for file inclusion where things like /etc/hosts and /etc/passwd get blocked. I disagree…

This looks like a variation of the Scunthorpe problem[1], where a filter is applied too naively, aggressively, and in this case, to the wrong content altogether. Applying the filter to "other stuff" sent to and among the servers might make sense, but there doesn't seem to be any security benefit to filtering actual text payload that's only going to be displayed as blog content. This seems like a pretty cut and dried…

> This looks like a variation of the Scunthorpe problem[1], where a filter is applied too naively

No.

> aggressively

No.

>, and in this case, to the wrong content altogether.

Yes - making it not a Scunthorpe problem.

Re: Writing "/etc/hosts" breaks the Substack editor

#346

Earlier quoted context omitted.

I don't get why you'd have SQL injection filtering of input fields at the CDN level. Or any validation of input fields aside from length or maybe some simple type validation (number, date, etc). Your backend should be able to handle arbitrary byte content in input fields. Your backend shouldn't be vulnerable to SQL injection if not for a CDN layer that's doing pre-filtering.

A simple reason would be if you're just using it as a proxy signal for bad bots and you want to reduce the load on your real servers and let them get rejected at the CDN level. Obvious SQL injection attempt = must be malicious bot = I don't want my servers wasting their time

> A simple reason would be if you're just using it as a proxy signal for bad bots

Who would be that stupid?

Re: Writing "/etc/hosts" breaks the Substack editor

#347
post #95

The problem with WAF is discussed in https://users.ece.cmu.edu/~adrian/731-sp04/readings/Ptacek-N... . One of the authors of the paper has said "WAFs are just speed bump to a determined attacker."

> "WAFs are just speed bump to a determined attacker."

We wish. Speed bumps don't totally immobilise a pseudo-random selection of innocent vehicles.

Re: Writing "/etc/hosts" breaks the Substack editor

#348
post #126
post #65

Earlier quoted context omitted.

> I disagree with other posts here, it is partially a balance between security and usability. And economics. Many people here are blaming incompetent security teams and app developers, but a lot of seemingly dumb security policies are due to insurers. If an insurer says "we're going to jack up premiums by 20% unless you force employees to change their password once every 90 days", you can argue till you're blue in th…

I wish IT teams would say "sorry about the password requirement, it's required by our insurance policy". I'd feel a lot less angry about stupid password expiration rules if they told me that.

Not exactly that, but I've had the security team say "sorry about the password policy, we agree it is stupid and counterproductive, but it's required for compliance with X, and we need X to sell to some big customers."

Re: Writing "/etc/hosts" breaks the Substack editor

#349
post #231
post #217

Earlier quoted context omitted.

And a rule that denies everything blocks all vulnerabilities entirely. A false positive from a conservative evaluation of a query parameter or header value is one thing, conceivably understandable. A false positive due to the content of a blog post is something else altogether.

This is a strawman, especially if like the parent claims this was improving security for one of the most popular website backends ever. Rules like this might very well have had incredible positive impact on ten of thousands of websites at the cost of some weird debugging sessions for dozens of programmers (made up numbers obviously).

Look, any WAF that blocks a document like

    
    
    
    

/etc/hosts is a file on Unix hosts

is pretty clearly broken. And you can't meaningfully measure product metrics like impact for fundamentally broken products.

Re: Writing "/etc/hosts" breaks the Substack editor

#350

Earlier quoted context omitted.

I don't get why you'd have SQL injection filtering of input fields at the CDN level. Or any validation of input fields aside from length or maybe some simple type validation (number, date, etc). Your backend should be able to handle arbitrary byte content in input fields. Your backend shouldn't be vulnerable to SQL injection if not for a CDN layer that's doing pre-filtering.

Because someone said "we need security" and someone else said "what is security" and someone else said "SQL injection is security" and someone looked up SQL injections and saw the word "select" and "insert". WAFs are always a bad idea (possible exception: in allow-but-audit mode). If you knew the vulnerabilities you'd protect against them in your application. If you don't know the vulnerabilities all you get is a fuz…

> If you knew the vulnerabilities you'd protect against them in your application.

Correction: it is not your application but someone else's Certified Stuff (TM) that you can't change, but which is still vulnerable.

Post reply on HN