Skip to content

Instantly share code, notes, and snippets.

View jeffrade's full-sized avatar

Jeff Rade jeffrade

View GitHub Profile
@jeffrade
jeffrade / native_mobile_connecting_to_graphql_api.md
Last active March 4, 2021 20:13
Securing Native Mobile connecting to a GraphQL API

Certificate Pinning is highly recommended. OWASP has outlined the Who, What, Why and How.

Static keys (as opposed to user generated keys with randomness) need to be, at a minimum, obfuscated away. There are many ways (and in complexity) to do this (e.g. at a minimum, Proguard for Android) and Carve Systems has a good write-up on this.

It should go without saying, but all APIs (not just GraphQL) should only be served over HTTPS and every request authenticated (e.g. HMAC and many libraries in all languages already implement this).

Common attacks on a GraphQL API with best practices and recommendations outlined here by OWASP.

A good GraphQL security audit tool [here](https://github.com/doyense

@jeffrade
jeffrade / update_on_ip_change.sh
Last active August 17, 2020 22:06
Bash script that checks for IP change and updates Route53
#!/bin/bash
# Usage: Launch in the background and pass RECORD_SET_NAME (e.g. sub.example.com.)
# as a first argument for the Route53 record. Log file can be found at /var/tmp/r53-record.log
NOTIFY_DIR=/var/tmp
LOG_FILE=${NOTIFY_DIR}/r53-record.log
CURR_IP_FILE=${NOTIFY_DIR}/ip.out
TMP_IP_FILE=${NOTIFY_DIR}/ip.tmp
IP_LKP_URL=https://ifconfig.me/ip
RECORD_SET_FILE=${NOTIFY_DIR}/r53-record-set.json
@jeffrade
jeffrade / install_kafka.sh
Created September 11, 2019 19:06
Install Kafka on CentOS 7
#!/bin/bash
echo "Starting..."
cd ~/
wget https://download.java.net/java/GA/jdk12.0.1/69cfe15208a647278a19ef0990eea691/12/GPL/openjdk-12.0.1_linux-x64_bin.tar.gz
tar -xzvf openjdk-12.0.1_linux-x64_bin.tar.gz
echo "PATH=$PATH:$HOME/jdk-12.0.1/bin" >> ~/.bash_profile
echo "export PATH" >> ~/.bash_profile
echo "export JAVA_HOME=$HOME/jdk-12.0.1" >> ~/.bash_profile
@jeffrade
jeffrade / bitcoind-start.sh
Last active April 13, 2024 21:08
bitcoind systemd service and start script.
#!/bin/bash
# Just a simple wrapper to start bitcoind.
#
# If using systemd, simply create a file (e.g. /etc/systemd/system/bitcoind.service)
# from example file below and add this script in ExecStart.
# https://raw.githubusercontent.com-/bitcoin/bitcoin/76deb30550b2492f9c8d9f0302da32025166e0c5/contrib/init/bitcoind.service
#
# Then run following to always start:
# systemctl enable bitcoind
@jeffrade
jeffrade / BitcoinCoreFullNode.md
Last active February 6, 2020 13:47
Running a Bitcoin Core Full Node - Additional Installation Notes

Addtional Setup and Installation Notes for Running a Full Node (Linux)

  • Install fail2ban
  • (Optional) Block data is getting larger (although at a slower pace), so you might be mounting an external drive to .bitcoin dir. If so follow these steps:
   # You want this to auto mount on reboot (or else you'll have to manually mount every time):
 - `sudo blkid` # Make note of the UUID of your drive
 - `sudo vim /etc/fstab` # Append additional entry and your mount directory (easy to default to `$HOME/.bitcoin`)
    e.g. `UUID=<hexadecimal-dashed-uuid> /home/<your-user-name>/.bitcoin/ ext4 defaults 0 0` 
 - `sudo mount -a` # Test this, you'll get errors if any
@jeffrade
jeffrade / fail2ban_install.sh
Created June 30, 2019 14:41
Install fail2ban on Debian Linux
#!/bin/sh -x
echo "Starting..."
apt-get install -y fail2ban
systemctl start fail2ban
systemctl enable fail2ban
> /etc/fail2ban/jail.local
@jeffrade
jeffrade / list_fun.ex
Created June 24, 2019 15:54
Tail recursive implementaion of doubling every other number in a list.
defmodule ListFun do
def double_every_other([], acc), do: acc
def double_every_other([head | nil], acc) do
new_acc = [head * 2 | acc]
double_every_other([], new_acc)
end
def double_every_other([head | tail], acc) when length(tail) == 0 do
@jeffrade
jeffrade / recursion.ex
Created June 11, 2019 14:11
Tail recursion is optimized way to do recursion in Elixir
defmodule Recursion do
@moduledoc """
Showing how tail recursion is optimized way to do recursion (i.e. no memory loss since function calls not kept on stack).
"""
def correct_tail_recursion_adding([head | tail], accumalator) do
correct_tail_recursion_adding(tail, accumalator + head)
end
def correct_tail_recursion_adding([], accumulator) do
@jeffrade
jeffrade / process_params.sh
Last active February 19, 2019 22:46
Bash script that will pop a line item for a file and pass it to a command.
#!/bin/bash
echo "Starting..."
param=`sed -e 1$'{w/dev/stdout\n;d}' -i~ params.out`
while [[ -n $param ]]; do
echo "Starting process for $param..."
<some-command> $param &
curr_pid=`echo $!`
@jeffrade
jeffrade / process_queue.sh
Last active August 17, 2020 22:07
Bash Script (infinite loop) to Upload Files to AWS S3 Glacier
#!/bin/bash
QUEUE_DIR="./queue"
COMPLETED_DIR="./completed"
S3_BUCKET_NAME="<YOUR_BUCKET_NAME_HERE>"
OLDEST_FILENAME=""
echo "Running..."
while :; do
echo "Finding oldest file..."