Hacker News new | past | comments | ask | show | jobs | submit | johannh's comments login

No, there’s no allow-list, you get the same heuristics as described on that MDN page.


Yes, it’s essentially that, FPI with workarounds for common breakage. You should switch from FPI, this is essentially another take on FPI by some of its original developers, so it should have fewer issues overall, not just site breakage.


(I’m one of the developers of this feature and co-author of the blog posts)

This is a great question and I’m glad you found the answer, you probably understand that for many blog posts we avoid going into too much technical detail.

To answer your final question, there is no hardcoded allow-list for State Partitioning. The heuristics as described on MDN are accurate.


Have you considered using something like Expounder (https://skorokithakis.github.io/expounder/) in your posts? (Disclosure, I made it but it's a small open source lib).

I don't see why we can have full-blown web apps but our text needs to be very specifically just text these days.


This is super cool!

I've only recently discovered that Markdown has footnotes, and I've gone to down adding footnotes everywhere.

I use Jekyll + markdown on my website, and I now have lots of fun adding footnotes to my writing.

I added a "footnote tutorial" for readers on https://josh.works/turing-backend-prep-01-intro#why-this-rub..., to help them learn how to navigate the footnotes.

I _love_ your library, and I love the problem that you're solving with it.

Along the way, I've looked at Gwern's sidenotes[0] and Nate Berkapec's "footnotes"/sidenotes [1].

I eventually want to do something more "in-line", like what you've down with Expounder, but I've been satiated with markdown footnotes for now.

[0]: https://www.gwern.net/Sidenotes# [1]: https://www.nateberkopec.com/blog/2017/03/10/how-i-made-self...


Thank you! I used to use footnotes too, but I didn't like how they took you out of the flow of the text. Expounder aims to specifically let users stay in the flow of reading, which is why one of the core instructions is that the text should work in context, as if it were never hidden.


It's good to see experiments along these lines. I really like Wikipedia's recent-ish rich tooltips on link mouseover, and the HTML <summary>/<details> elements deserve to be more widely known.

From the demo it look as if Expounder is one-way - once you've expanded something, you can't collapse it again. Is that correct?



I miss footnotes on the printed page because, in addition to references (where they're probably better as endnotes to be honest) I find they're great to use for parentheticals that bulletproof a point, add some background that's not essential to a point being made, etc. But these latter uses work significantly less well in a blog post or ebook.


Oh, wow. The Sidenotes discussion from Gwern that you linked is _phenomenal_. Thank you for sharing these.


What I dislike about footnotes like that is that they pollute the browser history. If you want to leave the page but clicked on a few footnotes and their backlinks, you have to go “back” through all of them.

Thank you so much for posting gwern’s sidenote article! I want to use sidenotes on my site and this was a very valuable resource!


Back button usually come with an unfoldable list of jump points.

I am more ennoyed by how the jump points are turned into a useless feature by so many javascript out there which load new content without impacting the browsing history.


I love this, but I'm a bit surprised that you do not include the ability to "unexpound" an "expounded" term. Is that intentional?

If I were reading a technical text, I would definitely end up reading most paragraphs at least twice. It would make no sense to keep the expounded terms in the second time; I'd be tempted to hide them back as soon as I was finished with them the first time.


Yes, it is intentional. The functionality actually exists, it's just not mentioned:

https://github.com/skorokithakis/expounder/blob/master/examp...

It's because, once clicked, the new text should become part of the old, and that's it. Presumably you've already read it, and I don't want to make the viewer have to re-collapse the links every time.

Your use case makes sense, though, which is why the feature was included. Maybe I should mention it in the README.


I think collapsing would also be useful when all you need is a quick reminder, not a full explanation. Like "What's that again? [click to expand] Oh that's right [click to collapse]". That's easier than finding the place to skip to.


Hmm, true, I've added it to the README!


Hi, can you consider adding some accessibility to the library? Currently, I don't have a way to know that a term could be expanded, because the signal seems to be visual only and not detectable via a screen reader. Adding aria-pressed might be the solution, but I'm not an expert, just an user.


Oh, that's a good point! I didn't realize it wouldn't be discoverable, you're right.


Thanks!


I feel like the inserted text should be highlighted with a light yellow background or some indicator. Just appearing like that inline seems a bit funky or unexpected.

But I see there is a css class which is nice.

Just a simple rgba(x,x,x,0.5) where the x’s are the usual yellow height.


I prefer to leave the styling to the user, the library is intentionally minimally invasive there...


I agree with this. It would be helpful.


I wonder what this does to SEO, does the hidden text get indexed, and is it not picked up as a dark pattern by crawlers?


Why use this instead of footnotes? For example in these Feynman lectures below the footnotes and references to formulas and images activate then you hover over it. These footnote can even include graphics and formulas.

https://www.feynmanlectures.caltech.edu/III_21.html


To me, footnotes serve a different purpose, e.g. linking to papers, like the Feynman lectures site does. Expounder is more about indicating that you don't know something, so the text itself can change to accommodate you.


I like how it unfold the text, but it doesn't give visual hint on what was unfolded, and doesn't provide a way to fold it again, it seems.

Be it topographic emphasize or coloring, there should be an hint. And clicking the text thus emphasized should collapse it.

That's my opinion, otherwise, nice done.


It should animate the text while unfolding, but, other than that, there's no need to know what was unfolded. You just click what you don't know and eventually read the relevant info!


Hasn't HTML the summary and details elements for this specifically, or am I overlooking something?


<abbr>/<defn> are also quite relevant, and would fit a number of the example uses better (like the definition of 'atoms').


Not the author, but presumably you're overlooking the fact that the expounded term doesn't necessarily have to be "inside" or even "neighbouring" to the details element.

The author's intent here is to have terms explained in the text explicitly in such a way that it would 'augment' the text with an explanation somewhere further down the line, but not necessarily "in-place".

It is also intended for text specifically, rather than replacing one element with another.

I agree that display/summary are similar in spirit though, I had not come across those before.


As far as I know, those work quite differently.


Yes, this! Your lib looks awesome. Thanks for publishing it and sharing here!


Thank you!


This looks amazing. Would you mind if I packaged this in a WordPress plugin?


Not at all, go for it!


Awesome. Just a heads up, I've already finished it and just submitted it. HOWEVER, the plugin has to be licensed as GPLv2, but it shouldn't affect your license (since it's just using your code as a library). I'd feel better about it (and it will probably be smoother sailing during the review process) if I could submit your names as authors on the plugin.

If you want to be listed as an author, just drop over to https://github.com/withinboredom/expounder-wordpress/tree/ma... and let me know your wordpress.org user names in an issue.


Thanks! I don't think either of us have a Wordpress username, but it'd be great if you could include a link to the repo in the description.

Thanks again for your help!


Will do!


I would like this as well, please share once you do.


I've submitted it to the WordPress.org plugins directory, but you can download it right now from the repo in the sibling comment.


Is there support for an expound-all button on a page? I definitely have days where I just want to also read the details and don’t want to click a dozen times while I’m reading.


Not currently, but it shouldn't be hard to add a button with one line of JS to add the required CSS class to all the elements. This might defeat the purpose, though, as it's kind of intended to save you from reading things you already know.


Cool! I've been thinking of a similar solution to add to my (planned ;) ) longer blog posts. I'm guilty of going into the details too much sometimes.


Same here, and I didn't like the tradeoff, so I figured I'd solve it with the power of T E C H N O L O G Y.


That is FN DOPE. Wikipedia should adopt it in full.


I know that you didn’t mean to completely throw the conversation from Firefox to Expounder, but you succeeded.

Mozilla who? That’s where we are now.


This should have always been the only way it worked. Plus it should be easier to create white lists of allowed websites and all other cookies delete with every broswer restart. I know it is possible with Firefox but you need to add websites to whitelist manually in deep settings. At least there are some extensions that make it easier, like CookieAutoDelete https://addons.mozilla.org/en-US/firefox/addon/cookie-autode...


I would like something like, each site by default gets a bucket by name.

If cookies from another bucket should be shared with other sites, or might be seen when requested by a cross-site load from another site, ask the user a four choice question.

"Allow (site) to see cookies from (site)?"

Always Allow, Just this time, Ask later, Always Deny


Have you considered that "Total Cookie Protection / Isolation Partition" would be a much better name? :D


What I wonder/concern is how can one decide for legit use. This also sounds like a possibility for discriminating small players with legit use. (similar to Microsoft's SmartScreen)

Would be great to know how are those concerns handled?


Thank you for your clarification, and your work on Firefox.

I guess that clears it up.


> you probably understand that for many blog posts we avoid going into too much technical detail.

Not really... for a highly technical issue like this, at a minimum you should link to the technical details.

There really is no excuse for making every reader of your blog who wants to know the details dig for them independently.

imo, at least.


Both the more technical blog post as well as the MDN page are linked shortly after that paragraph.


If your users are clicking a button then it should actually show the permission prompt, unless you're losing the user interaction somewhere in the callback (by doing something async first)

https://hacks.mozilla.org/2019/11/upcoming-notification-perm...

This is a frequent "mistake"/issue however, and we're working on a mitigation for it.


I'm doing this:

https://megous.com/dl/tmp/sub.txt

I guess this is then happening because I'm first checking if there's a subscription via `pushManager.getSubscription` before creating a new one in the event handler.

Yep, dropping getSubscription makes the popup appear again.


Congrats! Please note that Servo is a work in progress that is still lacking some modern browser security features, so enjoy responsibly.

See also https://github.com/servo/servo/labels/A-security



Neat story, but I don't see the analogy. OP says he/she doesn't see any innovation, not "this innovation is obvious". At least tell us an egg or two that Slack cleverly stands on end.


Now it occurs to me I may have been making a distinction (about the nature of innovation) where there arguably isn't one. Still, I think it's fair to ask exactly what Slack is doing right. If there is a real innovation, someone should be able to tell us (there've been some good responses); otherwise it's just lucky network effects or a fad.


> AMO doesn't do any code signing for extensions, so they're only protected by HTTPS. As we saw with Heartbleed, SSL private keys can be compromised.

I find it quite ironic that HTTPS Everywhere is arguing HTTPS is not safe enough to offer them a reasonable guarantee of integrity.


HTTPS is a lower bound of reasonable security, not an upper one. The argument for HTTPS _everywhere_ is that it's the smallest possible thing you can do to make yourself slightly secure.

Would you find it ironic that someone selling combination locks for gym lockers wants a better lock on their storefront?


I find it ironic if banks and post offices are using combination locks as advertised security measures but the people selling those install steel doors on their storefront.


> Would you find it ironic that someone selling combination locks for gym lockers wants a better lock on their storefront?

More like he wants to add additional security measures because the lock isn't secure enough. I wouldn't buy a lock then.


It's called layering.

Nothing is 100% secure.


Shouldn't be terribly surprising: http://dayswithoutansslexploit.com

HTTPS might be better than getting a website in cleartext, but you'd have to be a madman to claim that HTTPS is safe, sane, or secure.


True, I'm not surprised at all. HTTPS Everywhere-like functionality should be integrated into browsers and not a downloadable extra, tricking people into feeling fully secured.


While not "everywhere"...

Force SSL only: http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Have site preloaded in Chrome: https://hstspreload.appspot.com


Firefox also has a built-in HSTS preload list, which I believe uses the Chrome list as one of its inputs: https://blog.mozilla.org/security/2012/11/01/preloading-hsts...


This was originally published a year ago in this blog post:

http://berzniz.com/post/68001735765/javascript-hacks-for-hip...

Makes for a nicer read than slideshare imo.


This is something that could definitely have been reported to Slack before disclosing it publicly. Maybe he did that, but it's not mentioned in the blog post so I assume he didn't.

It's just a nice thing to do and they might reward you for it. You can still post it on your blog after they released a fix.


It was reported to them before, they said it's not a bug:

   @rootlabs: Got the expected "not a bug" from @SlackHQ so
   feel free to see names of MSFT, Google chats via login
   info leak. http://t.co/kldKXN7NTf
https://twitter.com/rootlabs/status/499723782244675584


13th August? man, someone messed up.


This is hardly an exploit. Since no authentication is required in order to see the chatroom listings for any domain, we must assume that they meant for their chatroom directory to be public information. This may not be what their customers are expecting, though...


It's not listing chatrooms, it's listing teams. Very different. For example, at the company I work we have two teams on Slack: Engineering and Marketing. Not really a problem if people find out that! The channel listing would potentially be more interesting, and this exploit does not allow you to see that (spoilers: it's "general", "random", and "cats").


It's information disclosure at its finest. Something you _really_ want to avoid in a sensitive environment - which company internal comms certainly is.


It's a minor degree of information disclosure -- hardly at it's finest.


The way companies handle security disclosures lately (i.e. laughing it off, or paying $6 reward), it seems like shaming them would work much better. Plus, this is truly a beginner-level failure, the kind you'd get insulted for by Linus.


Completely untrue about the people at Slack. I disclosed a pretty trivial vulnerability to them and got a $100 reward.

How about next time you stop generalising?


Well considering other people posted a tweet about someone trying to report it as a vuln on August 13th and getting told it's a feature, I'd say he's not exactly generalizing in this specific instance.


I'm not generalizing, and I don't really care about Slack. I'm just putting forward a hypothesis about what might be going on in a security researcher's brain when they stumble upon a vulnerability.


Pretty sure the going rate for a pen-tester is much, much higher than 100 usd an hour - and they would get paid even if they didn't find anything.


Slack has a Reporting Security Vulnerabilities page on its site: http://slack.com/whitehat. Seems like something they would have taken seriously if it had been brought to them first.



Why assume the worst about Slack just because some other companies have handled disclosures badly?

Real people work at Slack, and very few of them were likely responsible for this oversight.

OP could still pat him/herself on the back after disclosing and waiting for a fix.


Shaming Slack is one point. This guy just exposed the confidential information of who knows how many of Slack's customers. In my opinion that's douchery of epic proportions.


Maybe this kind of exposure is the only way we will teach people to stop trusting fly-by-night cloud startups with their confidential data?


This. That was exactly a kind of vulnerability that is meant to be publicly disclosed. Nothing of matter will happen to anyone because of that vulnerability, but people might remember it and next time they'll think twice about how they handle authentication.


How about responsibly disclosing to the victims/users before going public?


I don't see how that would be possible unless Slack has a full list of their customers available somewhere.

Note that elsewhere in this thread you can see that it was reported to Slack, but they responded saying it wasn't a bug.


So hurting people in order to teach them a lesson about not getting hurt?


This was about the most minor kind of information leak you could imagine. I doubt anybody is going to feel any real 'hurt' from this.

In this case the information seems unlikely to contain anything sensitive pertaining to customers. If it had though then the companies that had negligently put sensitive information on untrusted servers would be held liable and could face significant fines (violating the Data Protection Act 1998 in the UK can lead to fines of up to £500,000 and similar legislation exists in other parts of the EU). That more serious kind of breach is the one we are trying to avoid by advising companies not to use cloud services.


The lesson can be had independently of the intent of douchery. Shit happens, and learning from your mistakes (by admitting them) is a fine way to get better at what you do.


True, but it still feels like the right thing to do.

I'd like people do be responsible when they discover a serious flaw in my programs, so I'll try to be responsible when discovering one in theirs.

Also Linus basically insults anyone for being alive.


Responsible disclosure serves is nothing more than a cover for bad software venders.

You are under absolutely no obligation to do work for free that these companies should have been doing in the first place.


What if I'm not from the US and require a work permission? Any chance of applying?


I have no inside info, but my guess is probably not. Unless we're talking about AirBnB or Dropbox, most YC companies aren't going to want to take the time out to deal with the regulator¥ hassles of H1B sponsorship.

That said, for the perfect candidate, exceptions will be made.


Internships would fall under J1, which isn't all that hard to get.


North American interns with a technical background should be eligible for TN visas as well.


Are you speaking from experience? I've found the TN process really confusing for an intern, and if you have any experience with the application process, I'd love to hear about it.


Yes. Get the company's lawyer can fill out the paperwork for you and you show up at the airport with the paperwork and receive a visa. You can't apply in general for a TN, it is company specific.


TNs aren't for internships. J1s are.


J1 Visa is a breeze and is meant specifically for this


Same question here. From my friends who interned at Amazon, Facebook etc. the visa seemed pretty easy to get (we're Canadians), but those are bigger companies, not sure if the same applies to YC startups?


J1 visa is meant for this and it's pretty easy to get if you're still in school


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: