[-] HairHeel@programming.dev 17 points 6 months ago

Also, there were some candidates who managed to get 95% and above — but would then just be absolutely awful during the interview — we would later discover that they were paying someone to complete the technical test on their behalf.

Yeah my company shot itself in the foot by replacing technical interviews with an online test and hiring a bunch of cheaters. After a while we started doing a zoom interview where we’d go over the code they supposedly wrote and ask them to explain it to us. Even that simple step made it obvious who had or hadn’t actually written the code they were talking about. I’m pretty sure a few candidates had somebody talking in one ear and/or typing to them on a separate screen.

[-] HairHeel@programming.dev 15 points 6 months ago

Looks like lots of people's year end bonuses were contingent on them releasing something related to AI by the end of the year.

[-] HairHeel@programming.dev 15 points 6 months ago

JavaScript is a language that runs on a user’s computer, when they visit a web page. It is often used for dynamic functionality, ie when you click “like” on a comment… JavaScript running in your web browser will make a request to the server letting it know that you liked the post, then the server will respond with a total number of people who liked it or something.

But, the server needs to know how to authenticate which user liked the comment (so you can’t like it twice etc). There are various authentication mechanisms to do this, with their own trade-offs. Over all, there’s secret information that the browser and the server have to share with each other, and we don’t want that information being accessed by the wrong people.

There’s also a common problem with web apps called “cross site scripting”. Basically somebody might craft a cleverly formatted comment that exploits a bug in the web page and causes the attacker’s code to run. One trivial example might be if every time a person read a comment thread, the attackers code caused that person to “like” a request. A more serious exploit would be one that finds out that secret authentication information I mentioned and shares it with the attacker. They can then pose as the victim user and do anything they want as that person. This would be bad.

So, on to the different approaches and their tradeoffs.

  • HttpOnly cookies. Basically when you log in, the server gives your browser a cookie vouching for who you are. Each subsequent request to the server will include this cookie automatically. The browser handles attaching it to the request, and the browser hides it from any JavaScript running on the page. One trade off is that it requires some authentication to happen between the user and the service (ie enter your username and password), to generate the cookie in the first place. This is likely what OP’s customers want to avoid.
  • bearer tokens: basically, when JavaScript code makes a request to the server, it can optionally add some tokens in the request headers and use those to authenticate the user. I’m assuming OP’s scenario involves his company providing a service that is used by another company’s web site. They want to log in the user on their system, then forward some info along to OP’s system describing that user. They can’t just set an HttpOnly cookie for his domain, since it would be private to him; so instead they store a magic token in the browser’s local storage or somewhere and send that on every request. The down side is that JavaScript has to be able to read that token, so it enables that malicious user we talked about to steal it if they exploit some other bug.

Anyhow, one common solution here is to set very short expiration dates on those bearer tokens. That way if somebody steals it, they can’t use it for long.

Another strategy is to limit what each token can do. OP needs to make it so you can like a comment using one of those bearer tokens, but more dangerous actions like purchasing things, deleting content, etc, should be guarded by a more secure mechanism. Then the damage is mitigated if the bearer token leaks.

[-] HairHeel@programming.dev 24 points 7 months ago

Only 20 tickets? Sounds pretty stable

[-] HairHeel@programming.dev 22 points 7 months ago

Three days later, on November 20, the Seko union, which represents postal workers, will stop delivering letters, spare parts, and pallets to all of Tesla’s addresses in Sweden.

It seems troubling that there aren’t regulations in place requiring postal workers to deliver mail indiscriminately.

What if the postal union decided not to deliver mail-in ballots they thought might support a policy they disagreed with, for example?

[-] HairHeel@programming.dev 19 points 7 months ago

I use a “real name” domain. My last name ends in the letters “in”, so I bought a .in domain, such that the domain name is my last name with a dot in it.

Can’t honestly recommend that approach. It’s a cute gimmick, but when non-technical people ask for your email address and it doesn’t end in a TLD they recognize, their heads explode. I usually give out my gmail address.

[-] HairHeel@programming.dev 13 points 8 months ago

Didn’t Facebook try that for a while too?

[-] HairHeel@programming.dev 22 points 8 months ago

All this concern over the guy who says "wahoo" and "it's-a-me, Mario" is fascinating. Seriously it's never been more than a few lines. Why is any of this such a big deal?

[-] HairHeel@programming.dev 19 points 9 months ago

I appreciate the quick hack, but with a little more foresight you could have just put up a blurry jpeg with that number and changed the prompt so it looks like a CAPTCHA. Nobody would have given it a second thought.

[-] HairHeel@programming.dev 19 points 9 months ago

Why can't I play it on my Super Nintendo?

[-] HairHeel@programming.dev 20 points 10 months ago

What kind of use cases do people have for AI assistants in their web browsers?

[-] HairHeel@programming.dev 24 points 11 months ago

console.log counts as “a debugger”, right?

view more: ‹ prev next ›

HairHeel

joined 1 year ago