Why XSS Attacks Are More Dangerous for Capacitor/Cordova Apps
9 minsIn this article, we demonstrate how there are more avenues for XSS attacks in Capacitor/Cordova applications and how the impact can be worse
I'm a Software Engineer from Adelaide, South Australia. I mostly work with JavaScript/TypeScript on the frontend (mostly Angular), but I dabble in all sorts of backend and miscellaneous tech too.
You'll find most of my content on other websites:
I'm constantly releasing new content, and most of it is free. The easiest way to get most of my latest content (including the stuff that isn't made public) is to sign up for the weekly newsletter:
It is - as an Aussie might say to highlight something's genuineness - fair dinkum.
Almost all of the emails I send out contain completely free content related to web development. Usually once or twice a year I will promote my paid content, which in turn pays for all of the free content I create.
I'm a software engineer from Adelaide, Australia. These days I spend most of my work time working with:
I have been a full time content creator since 2017. Mostly I make my living by creating premium courses on technologies like Ionic and Angular, and I create a ton of free content around these same topics so that people know I exist, and that I know what I'm talking about.
I also do a little bit of consulting work. If you're interested in knowing more about that, check out the FAQ below.
I'm recognised as a Google Developer Expert for Angular, and an Ionic Developer Expert.
A disproportionate amount of my life is online, but I do still do some things in the real world too. Most of my spare time these days is spent hanging out with my wife and young son, and when I have the opportunity I spend time on my hobbies.
Here are some things that I like doing (not that I am necessarily any good at) in no particular order:
Can you share your neovim config?
This is legitimately the question I get asked most often. Fortunately, my neovim configuration is public so you can check it out here.
What theme are you using?
Are you interested in a role at our company?
I'm always happy for people to get in touch and hear about opportunities, but at least for the foreseeable future I am not looking for any roles
Are you able to help with a specific project or issue?
I do, however, have a some time available for small/targeted consulting work. For more detail about this, check out my consulting page.
Will you have a sale for any of your courses?
I generally don't run any sales/promotions for my courses except for when they first launch or receive a major update.
This website used to be where I wrote all my blog posts. This is no longer the case, but there are still around 400 blog posts on this website that have no other home. Some are by now frighteningly outdated, but many are still quite useful!
In this article, we demonstrate how there are more avenues for XSS attacks in Capacitor/Cordova applications and how the impact can be worse
In this tutorial, we aim to understand how to use Shadow Parts to style components protected by a Shadow DOM
In this tutorial, we walk through how to create a custom Capacitor plugin that will allow us to run custom native code in an Ionic application.
In this tutorial, we walk through how to build a Capacitor plugin that allows access to native iOS code. We will use the HealthKit API as an example.
In this article, we discuss what exactly Ionic is and how to use it. We cover various aspects of the Ionic ecosystem including other frameworks and the role of StencilJS.
In this tutorial, we will build a native iOS application with Xcode and then run an Ionic application inside of it. We will then discuss if this makes it a native app.
In this article, I discuss some key performance lessons related to creating animations and interactions with Ionic
Grab the source code for one of the advanced examples from the "Advanced Animations and Interactions with Ionic" book
Use the Ionic Gestures API to create a Tinder style swipe card gesture and animation.
Tips for creating impressive animations in Ionic applications whilst maintaining performance
In this tutorial, we are going to finish off building the functionality for this application using Test Driven Development.
In this tutorial, we will test the navigation between our two pages. To do this, we will introduce the concept of spies.
In this tutorial, we will be modifying the Products service to make a HTTP request and discuss why it is beneficial to use "mocks" in tests.
In this video tutorial, we walk through how to use Protractor's ExpectedConditions.
In this tutorial, we investigate how to use conic gradients with CSS to create a circle progress component
In this tutorial, I will be discussing how you can use page objects in your E2E tests to make them more maintainable and easier to write.
In this tutorial, I walk through how I integrate E2E tests into my test driven development workflow for Ionic and Angular applications
In this tutorial, we take a look at how to use fakeAsync, flushMicrotasks, and tick to test asynchronous code in Ionic and Angular
In this tutorial, we will be covering another type of automated test called End-to-End Testing, and how to apply that to an Ionic and Angular application.
In this tutorial, we will walk through how to use the Camera API in a PWA with Capacitor