2. Accept every scary permission prompt Apple throws at you
3. ???
4. Meta now has your home scanned.
This is how I see Apple’s argument. I wonder why they let the Browser exist then. It opens you up to so many more dangers, they should’ve let you only visit “apple.com” and maybe a few trusted partners.
I was not able to understand why these code points are bad. The post states that they are bad, but why? Any examples? Any actual situations and PoC that might help me understand how will that break "my code"?
Sometimes it's not just "your code". Strings are often interchanged and sent to many other parties.
And some of the codepoints, such as the surrogate codepoints (which MUST come in pairs in properly encoded UTF-16), may not break your code but break poorly-written spaghetti-ridden UTF-16-based hellholes that do not expect unpaired surrogates.
Something like:
1. You send a UTF-8 string containing normal characters and an unpaired surrogate: "Hello /uDEADworld" to FooApp.
2. FooApp converts the UTF-8 string to UTF-16 and saves it in a file. All without validation, so no crashes will actually occur; worst case scenario, the unpaired surrogate is rendered by the frontend as "�".
3. Next time, when it reads the file again, this time it is expecting normal UTF-16, and it crashes because of the unpaired surrogate.
(A more fatal failure mode of (3) is out-of-bounds memory read if the unpaired surrogate happens at the end of string)
I had a github action with a phrase 'filter: \directory\u02filename.txt' or something close to this and the the filename got interpreted as a utf-8 character rather than a string literal causing the application to throw an error about invalid utf 8 in the path. Had to go about setting it up to quote the strings differently, but you get to see a lot of these issues in the wild.
Suppose, when you were registering your username `develatio`, you decided to put U+202E RIGHT-TO-LEFT OVERRIDE in there as well. Now when somebody is reading this page and their browser gets to your username, it switches the text direction to render it right-to-left.
One of my pet peeves is when UIs don't clearly constrain and delineate the extent of user-controlled text. Plenty of phishing attacks have relied on having attacker-controlled input seem authoritative, e.g. getting gmail to repeat back something to the victim.
Yes, dangerous consequences of unexpected UI behaviour: imagine writing a URL backwards with a right-to-left override, and it clearly says www.yourbank.example but it goes to www.evilsite.example/example.yourbank.www
> Please don't complain that a submission is inappropriate. If a story is spam or off-topic, flag it. Don't feed egregious comments by replying; flag them instead. If you flag, please don't also comment that you did.
I think once you understand the context, it does make sense and would make it clear it isn't a "rant", but I also understand that that would require to actually do some reading so easier with a knee-jerk reaction to it instead.
If my math is not wrong, running a single “standard” container during 1 month (non-stop) would cost ~55$.
This looks extremely expensive for anything other than a simple demo/toy project. I can’t think of a reason I’d use this for heavy services instead of using [anything else]. Maybe I’m not seeing the use-case?
A 1 CPU + 2 GB of RAM + 50 GB ephemeral storage on Cloudflare Containers is $74.90.
The same on Fly Machines is $31.00 (performance-1x, varies by region). Fly Machines has the same sleeping functionality as Cloudflare.
Rivet Containers also has a similar price point of $29.40, but takes a different approach to sleeping (opts for optimizing coldstarts + autoscaling over snapshotting). (I work at Rivet)
I think Modal, which AFAIK has a similar feature set to Cloudflare Containers, also works out very favorably price wise compared to Cloudflare Containers.
Say I want to deploy a service that is currently receiving 1rps at a constant rate, no upticks, no gaps. Wouldn’t that be the cost? If the answer is “yes”, then no, that is a terrible pricing.
True. Most services (unless your service is a demo/toy project, as I stated earlier) have way more traffic. It might not be evenly distributed though the day, but if you add all the CPU time in a day, I’m sure it will exceed 24h. So that leaves me with the question for who is this? Developers that are starting and want to deploy something small?
The blog post answers this. Containers was built for folks who wanted to move rest of their workloads onto Cloudflare alongside Workers/R2/AI & other offerings.
From my experience, the Workers platform is real popular among indie developers, software shops, and shops building SaaS, who typically want zero-dev ops setup and usually pass down hosting costs to their customers.
That said, compared to new cloud providers like Fly/Railway, the pricing is indeed steep.
The container opens a gateway and each container provides its own local IP (e.g. 192.168.64.2), from what I understood, every services known host machine and can communicate with each other.
On my current implementation, I didn't work with DNS/Network Resolution because I need to understand better what I can/can't do with the API Apple provides, so the only things it does is handling the port mapping using `socat`, as the docs recommends.