Showing posts with label Mark Zuckerberg. Show all posts
Showing posts with label Mark Zuckerberg. Show all posts

Saturday, 19 September 2026

Five Funny Tech CEO Nicknames

Insults. Perjoratives. Pet names. Nicknames. I love these, especially the really witty ones. Today let's go through some of my favorite nicknames for tech CEOs. These are notable not just because they're (arguably) good puns, but because they actually describe perception of that person. Whether or not I personally agree (and make no mistake, there are instances where I'm enthusiastically on board), there's no running away from the fact that these are pretty awesome nicknames.

Also, these images were generated by Meta AI, because... well, what else is it good for, really?

1. Scam Altman

This is the CEO of OpenAI. And why, one might ask, is this fine fellow called "Scam"? "Sham" works just as well, but I have a certain fondness for the former because it was coined by no other than Elon Musk, who, quite fittingly, is the next entry after this one.

Slimy AF.

Fairly or otherwise, Altman is widely associated with AI hype and overpromising. You say "Snake Oil Salesman" and immediately I see this guy's face in my mind. 

To be fair, tech isn't just tech. A commercial angle has to exist in order to justify its existence. So having a "salesy" tech CEO isn't necessarily such an outrageous thing. It's more Altman's constant overpromising of what OpenAI can deliver, that irks people. I mean, how many times do people have to hear from this guy's mouth that AGI is coming in a few months?

2. Phony Stark

Not an instant classic unless you're also a Marvel fan. But if you are, you'd be familiar with Elon Musk's predilection for styling himself after a certain fictional genius-billionaire-playboy-philanthropist.

SpaceX-hole.

Too bad all he's got is the money. The requisite charm and wit to be an actual Tony Stark is squarely in the minds of his fevered fanboys.

And let's not act like Musk didn't do his darnedest to earn that nickname. His constant cringy posturing on X, that insufferable grin and the superfluous attention-seeking antics (because if you're already the richest person on this planet, why do you need that attention?) completely nail the performative tech CEO stereotype.

Hey, if the shoe fits...

3. Zuckerborg

This made me spit-take, because both the target and the reason for the name, are instantly recognizable.

Cringy robot.

Mark Zuckerberg, CEO of Meta, has long been famous for looking robotic. Which is probably unfair because he talks pretty naturally.

It all started during the Cambridge Analytica debacle, where he showed up looking less lively than a wax replica. It's almost no exaggeration to say that an entire generation was brought up on memes of Zuckerberg looking like a, well, Zuckerborg.

4. Jeff Beelzebos

Jeff Bezos, owner of tech giant Amazon, is conflated with the Devil for good reason. Which makes this one pretty clever.

Modern-day slave-owner.

Bezos is infamous for Amazon's widely-criticized treatment of their warehouse workers, said to border on the inhumane. Timed bathroom breaks, unreasonable work quotas, low wages and unsafe working environments - these issues have been mostly discussed and dissected by the general public.

Come on now, if this is what you're known for in addition to being insanely rich, why wouldn't people associate you with Beelzebub?

5. Tim Crook

I'll be honest - I have no idea why former Apple CEO Tim Cook is seen as so unethical as to warrant this nickname. I looked it up. Apparently, violating antitrust conventions and using child cheap labor in China. Basically, typical big-company CEO shit.

Bad guy?

I get why these would make him unpopular. Just not sure this makes him a crook. Did this guy actually break any laws? Maybe I'm the problem and I should stop interchanging the terms "crook" and "criminal".

But hey, if we're just looking for good witty nicknames, this one surely qualifies.

What's in a nickname?

There were some other options which I left out precisely because they're so obvious. I mean - calling Jeff Bezos, "Bozos". Or Mark Zuckerberg, "Zuckface". Really?! That's not witty, that's just juvenile. There's a difference.

Sticks and stones may break my bones...
T___T

Monday, 4 August 2025

Artificial Intelligence Experts join Meta... but it's not about the money? Really?

It was with some amusement that I spotted this article in recent times. In it, Meta head honcho Mark Zuckerberg is reported to have debunked the suggestion that AI experts aren't joining Meta for money.

For context, Zuckerberg has been luring top AI experts from Apple, Google and OpenAI. Interesting news, though not exactly noteworthy now, is it? Big Tech firms poaching from other Big Tech firms; nothing to see here, move along.

Meta catching those flies.

What was noteworthy was Zuckerberg's reaction to the suggestion that these new hires are joining for more than just the monstrous paycheck. He said these people were joining Meta for the opportunity to build superintelligent AI systems without all the red tape and shit. Obviously, I'm just paraphrasing here, but you get the gist!

Wow, Zuck. Just wow. 

Just to be fair, while that statement elicited incredulous laughter, there have been reports that some companies in the AI race have been less than enthused about AI research for the sake of AI research, seeing it as more of an avenue for profit. The thinking of business people, basically. 

And of course, being able to play with fancy new toys with almost unlimited resources is always nice. I imagine the "no red tape" thing was icing on top of a substantial cake.

But to say it's not about the money? That's a load of Facebook-shaped cap and we know it.

Facebook-shaped cap.

While I will concede that money probably isn't the only motivation, the fact remains that it's a pretty sizeable one.

Everyone, in some shape or form, is doing it for the money. Anyone who isn't, is either already unimaginably rich or just nuts. Meta's recent acquisition of Apple's top AI engineer is costing them USD 200 million a year. That's not chump change, chum. (Say that three times fast, I dare you!) Apple declined to meet that price. Yes, Apple! 

What about the claim of building a superintelligence? Well, that requires context. For intelligence, what are we comparing against? The idiots currently raging on Social Media about Sydney Sweeney's jeans? The ones busy politicizing the death of Hulk Hogan? That's not a terribly high bar, really.

Final thoughts

All this is not to say that these AI experts shouldn't take the money. Au contraire, they absolutely should. AI could be the thing of the future, that much is true. But it's hard to tell because that's what they all once said about NFTs and the Metaverse. Meta was even named after the latter!

Therefore, these AI experts should make hay while people are still willing to pay them that amount of money, on the off-chance that this doesn't last. As history has proven, tech can be a fickle mistress.

"It's not about the money, money, money"... really?!
T___T

Monday, 20 January 2025

Meta ditches the fact-checkers

Meta started off 2025 with a grand announcement in early January. CEO Mark Zuckerberg, sporting a new luscious mop of hair, declared that Facebook and Instagram would be dialling back on fact-checking and content moderation operations. In recent years, Facebook's moderation policies have been met with mixed reactions due to allegedly Left-leaning biases within the fact-checking. 

What it effectively meant was that if your Facebook posts have ever received a warning for saying things that the fact-checkers considered offensive or untrue, you were about to no longer be in danger of that. In particular, if you were of the Right-leaning persuasion, you might find your content no longer under scrutiny or censored in the name of "preventing the spread of misinformation".

Censored by Facebook.

I've never had much of a problem with that censorship. It's annoying when it happens, sure, but I don't get censored much. Mostly because being Singaporean, I tend to post things that don't actually make sense in English. The thing about having your own slang in a multi-cultural country is that you tend to go that way when feeling particularly strongly about something. In other words, we Singaporeans can be offensive in multiple languages, not just one. Go, us!

And also because I don't go onto Facebook or Instagram to look for Right-leaning opinions. Or Left-leaning ones, for that matter. These platforms just don't represent that kind of value for me. I'm more about the DIY and origami videos

Motivations

Mark Zuckerberg is a highly accomplished man, but with this move, even by his lofty standards, he achieved something truly remarkable. In a country where deep political divisions exist, he's managed to turn both the Left and the Right sides of the political aisle against him. Many on the Left think that he's a turncoat who sold out by adopting this bend-the-knee approach towards Donald Trump. On the Right, there's a sentiment that someone with no principles, who could abandon his stand just like that just because Donald Trump is the one soon to be in power, can't be trusted.

And both sides, of course, in not so many words, accuse Zuckerberg of trimming his sails in response to the directions the political winds blow in the USA.

Trimming their sails.

Honestly, from my privileged position of not caring a whit about the outcome of the culture wars in the USA, I fail to see the problem. 

Sure, Zuckerberg said this.
What started as a movement to be more inclusive has increasingly been used to shut down opinions and shut out people with different ideas, and it's gone too far. So, I want to make sure that people can share their beliefs and experiences on our platforms.

As far as I'm concerned, no matter how he may pontificate to the contrary, Zuckerberg has never been a champion for Free Speech. The mere thought elicits a chuckle. Zuckerberg's a businessman, first and foremost, and if it takes a certain amount of ass-kissing (even if said posterior belongs to a certain Donald J Trump) to get ahead, so be it. Zuckerberg isn't betraying anything or embracing some virtue. As a business owner, his first duty isn't to Free Speech - and if he's ever given you a different impression, I'm afraid that's on you - but to business. He's simply doing the sensible thing for Meta.

So what if Zuckerberg's only doing this because Donald Trump won the election? So what if he's only trying to ensure Meta survives at least till the next election four years later? What else is he supposed to do, sacrifice his business for high-minded ideals that some randos on the internet like to squawk about?

The plan is to move the moderation team to Texas. Assuming that the majority of the existing team can't simply just uproot themselves, the result would be some kind of voluntary mass resignation. Considering that Zuckerberg recently talked about replacing programmers in Meta with AI by this year, I think it's safe to assume that there's a drive to reduce headcount at Meta that ties in nicely with the move to Texas. That would represent significant cost savings for Meta, if nothing else.

What next for Meta?

The CEO of X, one Linda Yaccarino, congratulated Meta on the change. 

I think it’s really exciting when you think about community notes being good for the world... and it couldn’t be more validating than to see that Mark and Meta realize that. Mark, Meta, welcome to the party.

Welcome to the party? Geez.

This may be due to me being Asian, coming from a culture that normalizes sarcasm and therefore being suspicious of everything, including (and especially) things that sound like compliments. But it feels like some serious shade is being thrown here. She might as well have said "welcome to the twenty-first century!".

Twitter-shaped shade
disguised as a Like.

That aside, I would like to address another thing Zuckerberg said.
We tried in good faith to address those concerns without becoming the arbiters of truth, but the fact-checkers have just been too politically biased and have destroyed more trust than they've created, especially in the US.

Jesus, what was his first clue?!

Anyway, what does this change for Facebook? People have been attempting to push their political and ideological agendas on Social Media for over a decade now. It's just not that big a deal any more. You can throw all the Left or Right-leaning content in peoples' faces all day; you're not converting anyone. All it will probably accomplish is that now Facebook is no longer a Leftist echo chamber, people are just going elsewhere to find more suitable echo chambers. But absolutely no one is going to be coming onto Facebook in search of the truth.

In the larger picture, I'm not sure if anyone lets themselves be influenced by Social Media any more. To what end? Social Media is filled with people who are, in all likelihood, just as ignorant and unenlightened as everyone else. Anyone who's actually looking to have their opinions shaped by Social Media, is probably not playing with a full deck in the first place. To say nothing of the sort who have maybe a few thousand Followers and think their constant political posts on Social Media make any kind of difference.

Come to think of it, now with A.I coming up, we won't even need all these users anymore. Speak complete rubbish with utmost confidence? A.I can do that, and much faster too!

Ultimately...

One half of the USA is feeling great about the change, and the other half is feeling pretty sore. This is going to be an unpopular opinion, but none of that matters. For Meta's Social Media business, the writing was on the wall a long time ago. I see them becoming progressively less relevant. They'll always have a place in history, but in four to eight years, this may be exactly all they have left.

Facts man, facts!
T___T

Monday, 18 March 2024

Profanity-laced Content Over The Years

Long-time readers of this blog will have noticed that whenever certain impolite words are used in a blogpost, I take care to tag the post with the term "Profanity Alert". I've been called many things (and some of them are even true) but let it never be said that I am not in the habit of giving fair warning.

Through the years, the suspicion that I use entirely too many vulgarities to communicate my thoughts, has been entertained, and I have striven to do better, especially where this blog is concerned. It's not a moral issue for me, more a professional one. And perhaps a desire to challenge myself by expressing ideas in a less vitriolic manner.

Wash your mouth!

Thus, imagine my chagrin when I ran some data analytics on tag usage on this blog, and found that "Profanity Alert" was the frontrunner in terms of appearances.

What. The. Fuck?! (Yes I know, this doesn't help my case at all)

The findings

In 2015, things weren't so bad. I was mostly in techie mode. In fact, The tag "Profanity Alert" was not even in the Top 5. I was all business.


Things changed in 2016. "Profanity Alert" was not only in the Top 5, it was numero uno. At this point, I should have suspected a dangerous trend there.


It didn't get better the following year. "Profanity Alert" was still the most frequently used tag. Tags like "Web Development" came a close second. And honestly, it wasn't even that close.


There was a little improvement in 2018. The tag was still in top position, but it was tied with "Web Development". Which I guess meant that I was at least spending as much time talking about things that really mattered, without swearing.


2019 continued in the same vein. "Profanity Alert" and "Life as an Economic Digit" were tied in first place, with "Web Development" running close behind.


2020 was almost a copy of 2019, as far as the top few were concerned. "War Stories" took the place of "Life as an Economic Digit". Now "Web Development" was nowhere to be seen in the Top 10, and "Singapore" was the runner-up in terms of frequency. It marked a change to me talking more about local affairs.


It was in 2021 where I made a concerted effort to stop swearing excessively. To my pleasant surprise, "Profanity Alert" no longer appeared in the Top 10 after having been a mainstay for years. Go, me!


It did not last, alas; for in 2022, "Profanity Alert" slithered back to Numero Uno spot. Imagine my consternation! Bad habits, do, indeed die hard. It was time to stop being complacent.


2023 looked OK, as I made another effort to limit my swearing. It met with some success, for now my posts centered around Social Media. Thank you Elon Musk and Mark Zuckerberg, for giving me so much material to focus on!


2024 has gotten off to a promising start thus far. I have not used enough profanities in any posts to push the "Profanity Alert" tag to prominence. A little discipline seems to have done the trick.




Moving forward

I hope to continue making progress. While in principle, I have nothing against swearing, I think overuse of it ultimately detracts from what this is supposed to be - a tech blog. There are certainly better ways than constantly dropping F-bombs.

Friends Ultimately Choose Kindness!
T___T

Sunday, 16 July 2023

Meta's new platform: Threads or Threat?

I've never wanted a Twitter account. Back in the day, the thought of maintaining yet another extension of my online identity held little appeal, especially when all I could seemingly expect in return was yet another platform of celebrities airing opinions that they seemed to think I should care about, or non-celebs making those proclamations as though they were celebs. And, of course, thread after thread of shmucks with too much time on their hands people trying desperately to sound cleverer than the next guy, or just outright hurling verbal abuse when they thought they could get away with it.

Heck, if that was what I was after, I already had Facebook for that.


Thus, last week, when I saw an Instagram notification that told me some of my friends had already started posting on Meta's spanking brand new Social Media platform Threads, I was momentarily tempted to just hop on the bandwagon. Momentarily. Until I did a little homework and it turned out that Threads was basically a spiritual clone of Twitter less a few features.

Now, if I already had zero desire to have a Twitter account whether or not Elon Musk was in charge, why would I want Threads?

The case for Threads

The ad-free experience? Come on, now. We all know that once Threads hits a certain critical mass in terms of user base, Mark Zuckerberg is going to monetize the hell out of it. It's just business.

More moderation, less toxicity? Sure, right now Threads is a nice friendly place with content moderation. However, once enough users join this platform, the same thing is going to happen that happens everywhere - the name-calling, the endless virtue-signalling, the constant pseudo-intellectual bullshit. People are trash, and they don't stop being trash even if you intend to implement a level of censorship that would cause China to sigh with approval.

Censored!

It's also tempting to sign up for Threads just to spite Elon Musk, though in all honesty, a lot of that is his own fault. This techbro billionaire basically paints a target on himself every time he gets online to spout some outrageously trollish bullshit. He's a billionaire and the average Keyboard Warrior can't even begin to touch him... but they can affect his bottom line and dent his ego by going over to his competitor now that he has one. I like to think I'm above these levels of pettiness, though the simple fact is that my laziness precludes me from it.

Competition is good for the market, generally. Threads represents just that. Some might say we already have way too many Social Media platforms. I say that's only the case if one intends to sign up for all of them. As someone whose fortunes aren't being intrinsically tied to public recognition - such as, say, actors and artistes and influencers - I have the privilege of not giving a shit, one which I intend to exercise with extreme prejudice.

But back to the issue of competition. It's important to keep these guys in check. And if the world's governments can't, perhaps these competing platforms will keep each other in check. Think about it - even without a monopoly, platforms like Facebook, Twitter and the like were abusing data confidentiality and unevenly applying moderation policies. How much bolder would they get if they had a monopoly? That, my friends, is entirely unthinkable.

The case against Threads

I don't actually have anything against Threads specifically. At least, not any more than I have against Twitter and all the platforms that attempt to imitate it. It just doesn't offer me any value that would entice me to partake; I have no ambitions to become an influencer of any sort, and I certainly don't think my opinions require a Twitter-like soapbox to air them from.

Why, Zuck?!

But sure, let's take a look at the data that Threads wants to collect. That's quite a list: location, personal, health financial, web browsing... check out the screenshot, or check it out yourself on your App Store. Even by the standards of Social Media, this seems excessive. Now, being a complete nobody, I'm personally not all that concerned about data privacy. People who feel differently about the issue may beg the question: why in the ever-loving Zuck do you need all that data, Mark? Sure, these are mostly optional. But still, it's a little concerning.

There's also the issue of your Instagram account being tied to your Threads account. Apparently, once you install Threads, you can't delete your Threads account without also deleting your Instagram account, which just feels really tyrannical. I expect them to fix this at some point, though.

Lastly, there's the buzz that Threads lacks certain features that Twitter has, such as Trends and Spaces. But let's not kid ourselves, all people really need is a platform to air their opinions, exchange news of dubious veracity and argue with complete strangers. You don't need those extra features for that.

So... Threads or Threat?

Whatever one may think of Meta or Mark Zuckerberg, the move to create Threads and attract the Instagram user base was nothing short of brilliant. Already, Threads has unsurpassed rapidity of user growth and avoided (sort of) the growing pains of most other Social Media platforms. It came at an crucial time when Elon Musk seems to be struggling as Twitter's owner, and his increasingly unpopular decisions have left Twitter's user base crying out for an alternative.

Will Threads be Twitter's death blow? I sure hope not. Not that I'm a fan of either Mark Zuckerberg or Elon Musk, but the last thing we need in the Social Media arena is a monopoly. The existence of a flailing Twitter has given rise to the creation of Threads, and the existence of Threads should in turn hold Musk's feet to the fire. Already, we have news of an impending lawsuit. Good times!

Thread carefully, Elon Musk!
T___T

Wednesday, 24 November 2021

When Zuckerberg Met(a) Facebook

What in the world just happened? Facebook is changing names!

Last month, in what feels like it should have been more of an earthshaking moment, Mark Zuckerberg announced in a series of public conferences, that Facebook would now be named Meta Platforms, Inc. It was not to be just a cosmetic name change. The change went deeper than just a name and logo.


The existing Social Media and communications platforms - Facebook, Instagram and WhatsApp - will take up half of Meta. The other half will be dedicated to the construction of a metaverse. Just what in the heck is a "metaverse", you may ask? Tt is a virtual world where, if Zuckerberg achieves his vision, users can interact with an augmented or virtual reality environment in real-time. Hence, "Meta".

A metaverse!

Cynically, of course, one could see this as a matter of branding for Zuckerberg, nothing more. If he's to be believed, this was the direction they were heading all along and the name change is just meant to reflect that. The problem, according to him, is that Facebook is currently seen a a Social Media company. (No shit, really?!)



This move might prove to be worthwhile for Zuckerberg. After all, the abovementioned platforms all depend on mobile technology for propagation. That makes Facebook, as a company, vulnerable to the rules imposed by Google and Apple. And we all know Facebook has faced strong opposition to both entities in the recent past.

But what if Zuckerberg were able to pivot Facebook to a new kind of platform, one which wasn't dominated by Google and Apple? I'm not even gonna front - the possibilities are, to say the least, intriguing.

The Meta-conclusion

Honestly, I can't see the name change sticking. We're talking about over ten years' worth of inertia at this point. And let's be real here - "Meta" isn't exactly catchy or original. And the less said about the sheer lameness of the logo, the better. Seriously, were they maybe hoping to be as unimpressive as possible?

What's more pertinent, however, is the nature of Facebook's - ahem, excuse me, Meta's - business model. If they are truly pivoting to virtual reality, that is a huge deal if they manage to pull it off. Will they? The technology is there, but how much of it could truly permeate a market where internet strength can be spotty at best? Your guess is as good as mine.

It's been real,
T___T

Thursday, 4 March 2021

Facebook's Fatal Flex at Australia

What's up with Facebook? From that on-off war with Apple to the WhatsApp exodus, Facebook are making news for a variety of very poor reasons these days. And then there was this thing with Australia - yes, the country - just two weeks back.

It seems that this started when the Australian Government introduced a new bit of legislation that would compel Facebook (or other companies, such as Google) to pay news media outlets every time someone used their platform to share a link to a news article. Granted, this doesn't exactly sound fair to Facebook, but this isn't what I'm here for today. What I want to talk about is how Facebook reacted.

Google attempted a bit of bluster about removing themselves from Australia, but after Microsoft - rather opportunistically, I might add - backed Australia up, with the threat of being replaced by Microsoft's own search engine, Google decided to play ball.

No more Facebook for Australia?


Facebook, on the other hand, decided that they would no longer show any more news sources from Australia if that meant they would have to pay. From a business point of view, this is entirely legitimate, but quite understandably, some quarters saw this as an attempt at intimidation.

And then Facebook flexed their muscles. They blocked all news with Australian IP addresses from showing on their platform. Unfortunately, in the process, they also accidentally blocked emergency services and public information, and the backlash was immediate.

Where Facebook went wrong

As far as I can see, Mark Zuckerberg has always been about profits rather than power. Facebook is not really interested in promoting any sort of political idealogy or influencing people; rather, they're far more interested in making money and dominating the market. However, due to the nature and ubiquity of Social Media, they are in a power of position and they bear watching.

And many eyes have been watching them for a while. Nations wary that the platform might enable insurrectionists. Help spread misinformation, or even just inconvenient information. Ultimately, wary of the sheer influence and power of such a tech platform.

Pulling Australian media content was one thing. But it was very clumsily implemented, resulting in unintended consequences. Now those wary of Facebook's power are not only concerned with Facebook's power and willingness to use it, but also with Facebook's incompetence. Power is far more dangerous in the hands of those ill-equipped to handle it. It's like having a sleek powerful racecar... driven by an intoxicated child.

Is the FB racecar
driven by a child?

With that heavy-handed move, regardless of the eventual outcome with Australia, Facebook essentially made the target on their back a lot bigger and more prominent. Good going, Zuckerberg. Subtlety definitely isn't your strong suit.

In a nutshell

The term "speak softly and carry a big stick" comes to mind. Of course, one may argue, with the size of Facebook's stick, why should they have to speak softly? Because they can't take on the combined might of all the nations opposed to being held ransom by Facebook's power. It will be a long and costly battle, with little reward for victory. Unless you're some kind of V-For-Vendetta anti-Government nutjob where sticking it to the authorities is the reward, dying on this particular hill accomplishes pretty much nothing of actual value. Facebook is a business entity, and its primary and overriding directive is to remain profitable.

As a business, consumer trust can be a huge issue. Already Facebook faces challenges in the form of data breaches, privacy concerns and more. Add this latest mishap to the mix and you can see why that stunt really didn't help their case at all.

This looks inauspicious for Facebook!
T___T

Friday, 22 January 2021

Some basic realities behind the WhatsApp exodus

What a coincidence. At the beginning of this month, I was speaking of data privacy in tech. A couple weeks later, Facebook has once again given us something to talk about. This time, it's the Facebook-owned WhatsApp that has generated the controversy with an update to their Privacy Policy. They will apparently be sharing data with their parent company.

Now, this shouldn't come as any sort of surprise; after all, WhatsApp warned us back in 2016. What did surprise me was the sheer amount of people who upped and left, and started new accounts on apps such as Telegram and Signal.

Time to ditch WhatsApp?


Like, why now? All of a sudden, this reminded them that Mark Zuckerberg can't be trusted with their data? Kind of late, isn't it?

The alleged privacy issue

People have stated that this change to the Privacy Policy was what prompted them to move. Bear with me a moment; I'm about to explain why this is silly.

Firstly, WhatsApp's messaging service is as secure as ever, even from Facebook. No one short of a truly gifted (and determined) hacker can read your perfectly uninteresting messages and listen in on your perfectly uninteresting conversations. The data that is meant to be shared, is with WhatsApp's business entities, and even that is limited data that can be used for targeted advertising. In short, these changes to the privacy policy are only in effect with regard to conversations with businesses on WhatsApp.

Businesses. Not individuals.

So the panicked masses jumping ship over to seemingly more secure apps are really just overreacting. Chill! There's no guarantee that Telegram and Signal won't go the same way WhatsApp has gone. All it takes - all it ever seems to take - is an interested buyer. Sure, the owner of Telegram, Pavel Durov, has pledged never to sell. The co-founder of Signal and also co-founder of WhatsApp, Brian Acton, is all about the data privacy. Then again, how well do you know these guys? Promises are easy to make and even easier to break.

Secondly, I'd like to remind people that WhatsApp cost them nothing to install and use. My stance back then is pretty much the same now - if you aren't paying to use something, suck it up. If your precious privacy was really all that important, you'd spend a few bucks protecting it, wouldn't you?

Nothing is for free. Ever.

From the first day I started using WhatsApp, I've assumed that anything I say can be accessed and used against me. I don't expect anything to be private. It's a risk that every online user has to live with.

That said...

I actually do think it's a good idea to ditch WhatsApp. Though not for the knee-jerk reaction that many are having. You see, I don't like near-monopolies in tech. It spells trouble. That puts too much power into the hands of one party, and gives them the ability to screw us over all at once, whether intentionally or otherwise.

Thus, if people really wish to leave WhatsApp, I'm all for the idea. I just think most peoples' reasons for doing so aren't altogether sensible.

As of now, WhatsApp has announced a postponement of the planned update. I'm not sure how this is supposed to help; the damage is well and truly done. It's not like this will magically win back all the trust that wasn't there in the first place. Most people, if they actually look at the updated privacy policy, should not find much to be alarmed at. It's really WhatsApp's parent company, Facebook, that doesn't inspire confidence in users. And let's be honest here; who could blame them?

So long, Zuckers!
T___T

Wednesday, 6 January 2021

Uproars over user data privacy

This blogpost was meant as a commentary on what has transpired lately between tech giants Facebook and Google, but in light of recent events, has been somewhat expanded.

If you haven't heard about the latest spat between Apple and Facebook by now, you're probably living under a rock somewhere, or this stuff just doesn't interest you very much. Honestly, I wouldn't blame you either. These two have a love-hate relationship that goes way back when.

The most recent one started when Apple announced Privacy Policy changes with their new operating system, iOS 14. This would compel developers who wish to make iOS apps, to inform the app's users as to how their data is being tracked, and seek these users' explicit permission to do so. A year before that, Apple's CEO Tim Cook appeared to take a shot at Facebook in this column.
Consumers shouldn't have to tolerate another year of companies irresponsibly amassing huge user profiles, data breaches that seem out of control and the vanishing ability to control our own digital lives.

Shots fired.


Facebook responded by putting up full-page ads criticizing Apple's latest initiative, and claiming that those changes would hurt small businesses.

And then it was on.

The back-and-forth has only grown over the course of the past week, though from personal observation, public opinion seems decidedly tilted in Apple's favor. Still, the two sides of the argument are not without their respective merits and I beg your indulgence as I examine them here.

Apple's side

Apple's stated position is fairly straightforward, as it were - users should be informed as to how they are being tracked, and they should have a choice.

The slightly less straightforward part is that currently, users that are being tracked are invariably using some free service somewhere, and this is bad for Apple's subscription-based business model. So does this mean that Apple aren't genuinely concerned abut user privacy? I think a more useful question here would be - do users actually stand to gain if Apple gets their way?

Facebook's side

Facebook argues that being able to track user data, and thus, provide targeted ads, is a great source of revenue and helps keeps services and content free. Granted, giving users a choice invariably means that many of them aren't going to make choices that would please Facebook.

They are also arguing that small businesses (many of which apparently also depend on Facebook) would suffer if users were able to disallow tracking, though I really don't know anybody who actually buys that Facebook is really that concerned about small businesses. Even some of their own employees think that this is corporate bullshit.

My side

What do I think about all this? For starters, regardless of Apple's true intentions, I see no harm (to users anyway) in giving users a choice. Knowledge is power, after all. Apple isn't disallowing tracking on iOS - but ensuring that users know about it and can choose whether or not to let it happen. That's all right in my book.

On the other hand, I don't actually have a problem with allowing the likes of Facebook and Google to track me... and if I do have a problem, I can always choose not to use their services. Say what you like about Google and Facebook, but their services, even the free ones, are quality. They provide me many conveniences in life such as email, maps, site analytics and Social Media. But nothing in life is actually free, and certainly nothing stays free forever. I accept that if I want to continue using their products without paying a cent for them, I am going to have to give something back. And in this case, it means my data - browsing history, geographical locations, online purchases, and so on. Do I like it? No, I certainly don't. But I can live with that tradeoff.

Mark Zuckerberg, CEO of Facebook, has this motto: Move fast and break things. Well, it looks like Zuckerberg is going to have to do some of that fast-moving if Apple gets its way. Or perhaps the problem is precisely that Facebook moved too fast in capitalizing on targeted data as a main source of revenue, and now it's too late to course-correct. After all, it's been years and certain things are entrenched.

How much do you value your privacy, then? I'm sure plenty of people would choose not to be tracked, and that's fair. Would they be open to having to actually pay for the services they use? Because we can't have it both ways. We've all had it good up to now, but change is inevitable.

In other news...

Yesterday, Singapore had her own little furore when it was revealed during a Parliamentary Session that the TraceTogether tokens that I wrote about last June, could indeed be used to trace people. Apparently, the Criminal Procedure Code gives the Singapore Police Force blanket permission to do so. This was at odds with the statement Minister of Foreign Affairs Vivian Balakrishnan had made back then, that the data from TraceTogether would only be "purely for contact tracing. Period.".

Amid the cries of righteous fury from the unwashed masses, I'm willing to give Balakrishnan the benefit of the doubt when he says that he forgot about that provision. The man's a doctor by trade, not a lawyer. And there were more pressing concerns at the time... such as a global pandemic. Cynically, he could have, of course, decided to omit that little detail deliberately. And knowing what drama queens some of my fellow Singaporeans are, I find it hard to blame him.

But blame him, I shall.

Man, did it ever occur to him that this would come back to bite him in the ass later? No one of reasonably sound mind is arguing that terrorists and criminals should be exempt from having the data in their TraceTogether tokens tracked (though, if you are, feel free to take the next shuttle to Mars - I don't think you and I belong on the same planet), and yes, it's common sense that the police should have the power to use every means available to them to track down criminal activity. But why, in that case, make such an easily disprovable statement at all? So silly.

This can be used to track you.

However, my position regarding this apparent breach of data privacy remains similar to my stance towards Facebook and Google tracking my data; mainly, I don't give a shit. Sure, I value my privacy. I just happen to value my civic duty a little more.

And to all those lovely folks raising a ruckus over this, here's some food for thought.

Just because the police can use that data against you, it doesn't follow that they will. What possible reason would they have to do so? Your phones are connected to the internet. You probably drive a car that has a GPS installed. There's CCTV all over the island. And you're worried about this token? Are you for real?

This would be like if I had a loaded gun in one hand, and a Swiss Army knife in the other, both of which could be used to kill you... and you obsessed over your cholesterol levels.

Get a grip, children!
Not-so-privately,
T___T

Thursday, 25 June 2020

Making the contact tracing effort mandatory

Singapore is still in the middle of the COVID-19 battle; indeed, so is the rest of the world no matter what New Zealand claims. All due respect to NZ, but as long as an effective vaccine has not been created, the war is not over and all celebration is premature.

To that end, Singapore is intending to distribute the wearable TraceTogether token, which functions pretty much like the app of the same name. The app, along with the SafeEntry app (which is basically an online form called by scanning a QR code - rudimentary but effective) were rolled out the past few months as aids to help the contact tracing effort. However, they have not been altogether adequate.

The TraceTogether app

This app uses the Bluetooth feature on mobile phones, tracking all similarly enabled mobile phones within a radius. Therefore, in theory, one should be able to trace whomever an infected user was in close contact with.

Using TraceTogether.

Unfortunately, this does not work so well on iOS devices, and even on Android devices. It also has the annoying side-effect of hogging the Bluetooth signal. As long as this app is on, your mobile can't use Bluetooth for anything else.

Also, the older population may not be tech-savvy enough to actually know how to use a mobile phone, much less install an app.

The SafeEntry app

This solution is deployed at the entrances of all buildings, and every shop within a mall. Upon entry, the user is supposed to scan the QR code, go to the page and click the "Check-in" button after entering details such as NRIC and mobile number. Upon exit, the user should click the "check-out" button.

SafeEntry is useless in the open.

Not only is this troublesome AF, it's all too easy to forget to "check-out". And one can even more easily lose track of all the places checked in at. Just try going to any building from the underpass at Orchard MRT.

In addition, this method is deployed only at entrances of businesses. Meaning, it doesn't do jackshit to help trace people who might have contracted COVID-19 out in the open.

What the TraceTogether token solves

Basically, anything that involves considerable conscious effort on the part of the user, is suspect. People are human; they get lazy and slipshod. Wearing the token ensures that tracking will be done everywhere, without the need to install apps or click buttons.

Along with that, the Singapore Government might be about to make the wearing of this token mandatory; that is, if you are found not to have that token on your person, you will be fined and/or jailed. This has predictably raised a ruckus, with people signing some lame petition against it, just about guaranteeing that the law will be passed.

People are concerned, despite pretty much handing their data over to Facebook and Google every time they use their mobile phones (or even when they don't), that the Government will abuse this privilege to track their every movement. They're concerned for their freedom and privacy. They'd rather let the likes of Mark Zuckerberg and Sundar Pichai take their data for profit, but not their own Government who are trying to save their lives. Some have even suggested that the Government is using this outbreak as an excuse to implement a surveillance state.

Are you guys for real?!
Oh FFS, children. Grow up!

The token doesn't check your location. It checks who was in close contact with you. That's a whole different kettle of fish. I've found that most of the people raising a fuss aren't technically inclined... the techies I know aren't concerned in the least. Because we actually know shit, and we know this doesn't do what you think it does!

And even if it does track your every movement...

Maybe I haven't made myself perfectly clear the last few times I wrote about this, but fuck your precious privacy. Lives are at stake. In case you've been living under a rock and don't know what we're dealing with here, COVID-19 is a very infectious disease which can lead to death. The fact that only twenty-plus people have died out of a possible forty thousand infected in Singapore so far, is no reason to be complacent.

COVID-19, on its own, is not that deadly a disease. However, it is extremely contagious and Singaporeans behaving like utter retards at every opportunity makes this disease even more dangerous than it already is. We're stupid and ill-disciplined, and will willingly disregard self-preservation and the safety of others for instant gratification. That's what the past few months of observation have shown me.

If the TraceTogether token is not made mandatory, that means much faith has to be placed in the hands of Singaporeans to do the right thing for the greater good... and I'm not at all sure we're deserving of that amount of faith.

Oh, the COVIDity!
T___T

Sunday, 10 February 2019

How Apple came to pull the plug on Facebook and Google

Prickling privacy pirates!

There's a story that broke about last couple weeks, when Apple caused a certain amount of chaos in Facebook and Google offices.

Apple lays the smackdown.

How this came about

Apple has this policy that no apps hosted on their App Store will infringe on user privacy in any way. Facebook was running apps that, with the permission of their users, tracked their personal data to the tune of up to 20 USD per month. So was Google. Ever wonder how is it Google seems to always know exactly where you are? There's your answer.

To get around Apple's policy, Facebook ran those tracking apps through their membership in Apple's Developer Enterprise Program. For those who don't know what that is, that's a platform which allows subscribed corporations to bypass Apple's App Store when deploying apps that are meant for internal use. Like Facebook's lunch ordering app or campus bus booking app, for example.

Facebook, as mentioned earlier, was paying users for their data, but as Apple had a data privacy policy on their App Store, elected to run those apps on the Developer Enterprise Program instead, passing the users off as their own staff. Google did much the same thing. Essentially they were in violation of the policy and hoping to bypass scrutiny.

And when Apple found out, there was hell to pay.

Well, OK, not exactly. What Apple did was to pull the plug on Facebook's membership. They did the same thing to Google a day later. The main point was to invalidate the certificates to Apple's business software, which meant that the tracking apps for both Facebook and Google were no longer able to work. However, since Facebook's legitimate internal apps were also distributed via this license, this left Facebook employees scrambling as their access to internal apps was summarily cut off from their iOS phones and Macs.

Did Apple do the right thing?

There's no argument about it - they did. Look, I'm an Android user and not at all an Apple fanboy, but let's give credit where it's due.

Facebook and Google broke clearly defined rules, and even attempted to sneakily bypass those rules in Apple's own house. Purely from a selfish point of view, Apple couldn't let that stand. From an ethical point of view, even if Facebook had technically broken no rules, there are exceedingly few iPhone users (who aren't also Facebook employees) who would take Facebook's side where data privacy was concerned. Hell, there are very few smartphone users who would trust Facebook where their data privacy is concerned, period! (I personally don't give a monkey's left nut. I'm of the opinion that if something comes free, like Facebook, there's always a catch. That said, I don't use Facebook much anymore so...)

This isn't even similar to the Patreon case, where users were arbitrarily de-platformed. In this case, Apple had more than ample cause for action, and past precedent to back it up. It's telling that Facebook and Google did not argue the decision but instead issued public apologies.

Did Apple do it for the right reasons?

Now, this one's mighty contentious. While Apple said they did this to "protect user privacy", I'm of the opinion that this came at a very convenient time for Apple.

Just prior to this episode, the iPhone app FaceTime had a serious bug that enabled anyone to turn someone else's iPhone into a live mic. And just when Apple was dealing with the inevitable fallout, who else should screw up but Facebook and Google, right in their backyard. Talk about a fall guy (or guys) to distract users from Apple's own mess!

Also, it's no secret that Apple's CEO Tim Cook and Facebook head honcho Mark Zuckerberg aren't exactly enamored of each other...  Cook might have done the right thing here, but I'd bet my last dollar he was experiencing no small amount of personal satisfaction while doing it.

Is it over?

Oh hell, no it ain't over. Apple might have shown Facebook and Google who's boss in this one instance, and there's no disputing that Apple accounts for a huge chunk of mobile web traffic in case any of them feel like pulling this stunt again in future, but Apple's dominance doesn't quite extend itself to desktop browsing, where Safari is currently languishing behind the likes of Chrome.

This is just the beginning, folks. The battle of the tech giants started a while back, but now shots have been fired. And some have landed. If nothing else, Facebook and Google have egg on their faces. Round One to Apple - now let's see how it goes.

How'd you like them apples? (heh heh)
T___T

Thursday, 21 September 2017

Web Tutorial: The Anti-CSRF Token

Today's web tutorial is security-based, and it's one of the most elementary things you should know about when developing web applications.

I will be demonstrating a very simple Cross Site Request Forgery (CSRF) attack, and detailing how to foil it. Most frameworks already include this protection, but I would not recommend relying exclusively upon this protection without at least a rudimentary understanding of how it works.

A CSRF occurs when one party outside of your web application's domain makes a request to your web application, mimicking all the necessary data needed for the request to be processed. If that sounded like gibberish to you, maybe the diagram below will help.

CSRF attack diagram


And if that still doesn't help, no sweat. I'll be walking you through an example.

Take this PHP code. I'm not going to explain every line because that's not the purpose of this tutorial. Basically, this code makes a request to tx.php to return some data.
index.php
<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <form method="POST" action="tx.php">
            Show transactions with:
            <select name="ddlTxWith">
                <option value="0">Sundar Pichai</option>
                <option value="1">Mark Zuckerberg</option>
                <option value="2">Steve Jobs</option>
            </select>
            <input type="submit" value="Go">
        </form>
    </body>
</html>


This is what you should see when your server runs it. Here, I'm assuming that the intended user is already logged in. You have a drop-down list with three big names, and clicking the "Go" button will reveal all the transactions you've had with the selected person.


Now, this code defines a multi-dimensional array, simulating some data from a database. It takes the value of the drop-down list submitted, and uses it to grab the required data.
tx.php
<?php
$TxWith = -1;
$TxObj = array();

$Tx = array();
$Tx[0][0] = array("Date"=>"20 May 2010", "Amount"=> 200, "Comments" => "10-course dinner");
$Tx[0][1] = array("Date"=>"5 July 2016", "Amount"=> 10500, "Comments" => "Website fees for Google domain");
$Tx[0][2] = array("Date"=>"18 June 2011", "Amount"=> 50, "Comments" => "Monthy Gmail fee");

$Tx[1][0] = array("Date"=>"10 July 2011", "Amount"=> 660, "Comments" => "Facebook ad registration");
$Tx[1][1] = array("Date"=>"10 September 2011", "Amount"=> 2, "Comments" => "Starbucks coffee");

$Tx[2][0] = array("Date"=>"10 June 2010", "Amount"=> 2500, "Comments" => "Apple design");
$Tx[2][1] = array("Date"=>"12 June 2012", "Amount"=> 1200, "Comments" => "iOS Seminar Booth");
$Tx[2][2] = array("Date"=>"5 August 2015", "Amount"=> 2000, "Comments" => "iPad");

if (isset($_POST["ddlTxWith"]))
{
        $TxWith = intval($_POST["ddlTxWith"]);
        $TxObj = $Tx[$TxWith];
}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <?php
        if (sizeof($TxObj)>0)
        {
            for ($i = 0; $i< sizeof($TxObj); $i++)
            {
                echo "Date: " . $TxObj[$i]["Date"] . "<br />";
                echo "Amount:  $" . $TxObj[$i]["Amount"] . "<br />";
                echo "Comments: " . $TxObj[$i]["Comments"] . "<br />";
                echo "<br />";
            }
        }
        ?>
    </body>
</html>


So, for example, if you select "Steve Jobs" and click "Go", this is what you get. Yes, I know in the real world, Steve Jobs is not going to pay me $2000 for an iPad (besides, the dude is dead), but I can dream, right?


Here comes the attack!

Now, on a separate folder, which we'll call csrf_attack, let's create index.html. That's right, you don't even need sever-side code to do a CSRF. Scary, huh?
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Attack</title>
    </head>
    <body>

    </body>
</html>


OK, there's a blank HTML template right there. How do we know what variables to send? Well, assuming you had an account for that web application in csrf_test, you could view the source and get this...



That's just one way out of a multitude of rather more sophisticated (and automated) methods. I'm just using the most obvious way.

So after that, we use the code! Note that in the action parameter of the form tag, we've set it to submit the request to the site we're attacking. In this case, it's localhost/csrf_test/tx.php.
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Attack</title>
    </head>
    <body>
        <form method="POST" action="http://localhost/csrf_test/tx.php">
            <select name="ddlTxWith">
                <option value="0">Sundar Pichai</option>
                <option value="1">Mark Zuckerberg</option>
                <option value="2">Steve Jobs</option>
            </select>
            <input type="submit" value="Go">
        </form>

    </body>
</html>


Open this up in another browser. I'm using Chrome for csrf_test, so let's go with Firefox for csrf_attack.


Now click Go, and you have all the transactions with Sundar Pichai! That's data that you, as an attacker, have no right to. Viewing unauthorized data is damaging enough; imagine if your request actually involved editing, adding or deleting data. Or, if this page actually allowed a user to perform transactions, an attacker could use this to send money from the victim to himself.


Foiling the attack

The recommended way is to use an anti-CSRF token, one that the attacker cannot replicate. You could use a randomly-generated token... or you could use one that has already been provided by you, via PHP's session token.

So do this. It begins a PHP session. Ordinarily, you would already have this code, if the page handled user logins.
index.php
<?php
session_start();
?>


<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <form method="POST" action="tx.php">
            Show transactions with:
            <select name="ddlTxWith">
                <option value="0">Sundar Pichai</option>
                <option value="1">Mark Zuckerberg</option>
                <option value="2">Steve Jobs</option>
            </select>
            <input type="submit" value="Go">
        </form>
    </body>
</html>


Add this to the HTML portion. It's a hidden field, with the session id embedded. For extra security, we'll hash it with MD5 encryption.
index.php
<?php
session_start();
?>

<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <form method="POST" action="tx.php">
            Show transactions with:
            <select name="ddlTxWith">
                <option value="0">Sundar Pichai</option>
                <option value="1">Mark Zuckerberg</option>
                <option value="2">Steve Jobs</option>
            </select>
            <input type="submit" value="Go">
            <input type="hidden" name="hidCSRF" value="<?php echo md5(session_id()); ?>">
        </form>
    </body>
</html>


View your source. See that hidden field with "f7c6332b0ec5529210f7959a0d304521"in there? That's the MD5 hash of your unique session id.


Now, in tx.php, we'll start a session as well.
tx.php
<?php
session_start();

$TxWith = -1;
$TxObj = array();

$Tx = array();
$Tx[0][0] = array("Date"=>"20 May 2010", "Amount"=> 200, "Comments" => "10-course dinner");
$Tx[0][1] = array("Date"=>"5 July 2016", "Amount"=> 10500, "Comments" => "Website fees for Google domain");
$Tx[0][2] = array("Date"=>"18 June 2011", "Amount"=> 50, "Comments" => "Monthy Gmail fee");

$Tx[1][0] = array("Date"=>"10 July 2011", "Amount"=> 660, "Comments" => "Facebook ad registration");
$Tx[1][1] = array("Date"=>"10 September 2011", "Amount"=> 2, "Comments" => "Starbucks coffee");

$Tx[2][0] = array("Date"=>"10 June 2010", "Amount"=> 2500, "Comments" => "Apple design");
$Tx[2][1] = array("Date"=>"12 June 2012", "Amount"=> 1200, "Comments" => "iOS Seminar Booth");
$Tx[2][2] = array("Date"=>"5 August 2015", "Amount"=> 2000, "Comments" => "iPad");

if (isset($_POST["ddlTxWith"]))
{
        $TxWith = intval($_POST["ddlTxWith"]);
        $TxObj = $Tx[$TxWith];
}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <?php
        if (sizeof($TxObj)>0)
        {
            for ($i = 0; $i< sizeof($TxObj); $i++)
            {
                echo "Date: " . $TxObj[$i]["Date"] . "<br />";
                echo "Amount:  $" . $TxObj[$i]["Amount"] . "<br />";
                echo "Comments: " . $TxObj[$i]["Comments"] . "<br />";
                echo "<br />";
            }
        }
        ?>
    </body>
</html>


And then we'll add an If conditional block to check if the MD5 hash of your current session id matches the one you sent in the form!
tx.php
<?php
session_start();

$TxWith = -1;
$TxObj = array();

$Tx = array();
$Tx[0][0] = array("Date"=>"20 May 2010", "Amount"=> 200, "Comments" => "10-course dinner");
$Tx[0][1] = array("Date"=>"5 July 2016", "Amount"=> 10500, "Comments" => "Website fees for Google domain");
$Tx[0][2] = array("Date"=>"18 June 2011", "Amount"=> 50, "Comments" => "Monthy Gmail fee");

$Tx[1][0] = array("Date"=>"10 July 2011", "Amount"=> 660, "Comments" => "Facebook ad registration");
$Tx[1][1] = array("Date"=>"10 September 2011", "Amount"=> 2, "Comments" => "Starbucks coffee");

$Tx[2][0] = array("Date"=>"10 June 2010", "Amount"=> 2500, "Comments" => "Apple design");
$Tx[2][1] = array("Date"=>"12 June 2012", "Amount"=> 1200, "Comments" => "iOS Seminar Booth");
$Tx[2][2] = array("Date"=>"5 August 2015", "Amount"=> 2000, "Comments" => "iPad");

if (isset($_POST["ddlTxWith"]))
{
    if (md5(session_id()) == $_POST["hidCSRF"])
    {

        $TxWith = intval($_POST["ddlTxWith"]);
        $TxObj = $Tx[$TxWith];
    }
    else
    {
        echo "You are not authorized to view this data.";
    }

}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Test</title>
    </head>
    <body>
        <?php
        if (sizeof($TxObj)>0)
        {
            for ($i = 0; $i< sizeof($TxObj); $i++)
            {
                echo "Date: " . $TxObj[$i]["Date"] . "<br />";
                echo "Amount:  $" . $TxObj[$i]["Amount"] . "<br />";
                echo "Comments: " . $TxObj[$i]["Comments"] . "<br />";
                echo "<br />";
            }
        }
        ?>
    </body>
</html>


Try your code again. See if you can still get all of the transactions with, say, Mark Zuckerberg? There should be no change to the results. It should all be transparent to the user.


Now let's attack again!

Let's grab the code and add it to your index.html. Yes, even the hidden field.
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>CSRF Attack</title>
    </head>
    <body>
        <form method="POST" action="http://localhost/csrf_test/tx.php">
            <select name="ddlTxWith">
                <option value="0">Sundar Pichai</option>
                <option value="1">Mark Zuckerberg</option>
                <option value="2">Steve Jobs</option>
            </select>
            <input type="hidden" name="hidCSRF" value="f7c6332b0ec5529210f7959a0d304521">
            <input type="submit" value="Go">
        </form>

    </body>
</html>


Run it. Then try to get all transactions with Steve Jobs. Bingo! The attacker gets nothing, because tx.php's unique session id for the attacker did not match the one sent in the form!


What if the attacker could get hold of the actual session id that a user is currently using?

Good thinking!

But let's consider this - a useful session id needs to not yet have expired, which means the user in question must still be in an active session. The window to act is pretty small. If the attacker could get that, there would be no need to resort to a CSRF. He'd probably have a far more direct means of attack at his disposal.

So this method is fool-proof?

Nothing's ever 100% fool-proof. But, for that threat level, this is probably adequate.

That's all for today. Good Job(s)!
T___T