Laravel, Cloudflare and Trusted Proxies

When using Cloudflare to manage your site, you may notice that if you check the ip address of the request, it will be an ip address from Cloudflare. This is happening because Cloudflare is proxying the request to your server. To get around this issue and get the original request ip, you need to configure trusted proxies in Laravel.

This is important because the throttle middleware checks the request ip and throttles based on ip. If all request look like they are coming from Cloudflare, this will cause issues. Read More

How to View Source Code of an Extension

Browser extensions are composed of Javascript, HTML, CSS, and images. Before installing any extension I will usually review the source code. This is important to verify that an extension is not doing anything malicious. Luckily, viewing the source code is simple if you use the CRX Viewer. (source)

  1. Browse to the extension install page and copy the URL of the extension. (example)
  2. Go to and paste in the URL. (example)
  3. You can review the code in your browser or download all files and review in your text editor.

Read More

Set Image Src from Amazon S3

I needed to request an image from Amazon S3 using ajax so I could read the response metadata headers. At first this seemed like a simple task. The first issue I encountered was that S3 was blocking the metadata headers from the browser using CORS. After a quick update to the S3 cors policy on the bucket, this issue was resolved. But what about turning the blob data type that comes from S3 into an img src. After several Google searches, I was finally able to get it to work. It was more difficult to find than I expected. Read More

Weather Extension Status Page

When managing multiple websites, apps, and extensions it is important to know when a site is down before your users have to alert you. Currently, I use UptimeRobot to monitor all my websites etc. It’s a great service that offers uptime checks and will alert you by email or text. It’s free for up to 50 sites checked every 5 minutes. You can even ping servers.

Recently I noticed they offer free status pages which can be public or password protected. Within a few minutes, I was able to create a public status page for my weather extension. Setup was pretty easy after adding the CNAME to my domain in Cloudflare. So now will display the current state of my API, homepage and weather provider. Currently all checks are 100%!