Skip to content

Instantly share code, notes, and snippets.

@icamys
icamys / elasticsearch_export.py
Last active December 19, 2023 22:08
Script for exporting documents from an Elasticsearch index.
"""
Usage: python elasticsearch_export.py > docs.ndjson
"""
import json
import elasticsearch.helpers
from elasticsearch import Elasticsearch
# =======================
@icamys
icamys / bpfbuilder.go
Created March 29, 2022 21:27
BPF builder
package main
import (
"fmt"
)
type BPFFilter string
func (f *BPFFilter) AndExpr(expr string) {
if len(*f) > 0 {
@icamys
icamys / poc-memleak-7.4-8.0.php
Last active December 26, 2020 20:17
A piece of code in PHP that bypasses memory limits and causes memory leak. Works on the latest php7.4 and php8.0 as of 26.12.2020
<?php
ini_set('memory_limit', '1M');
echo 'PHP7.4/PHP8.0 memory leak' . PHP_EOL;
echo 'Memory limit: ' . ini_get('memory_limit') . PHP_EOL;
echo 'PHP version ' . phpversion() . PHP_EOL;
// This code fragment triggers memory allocation error (as expected)
for ($i = 0; $i < 100000000; $i++) {
@icamys
icamys / tokens.md
Created November 7, 2019 15:18 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Last major update: 21.10.2019

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с данными сохранёнными в базе данных.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@icamys
icamys / go_profiling.md
Last active October 3, 2019 14:55
Golang performance profiling tips with pprof

Here are some tips on profiling golang code with pprof.

Starting profiling server

Run a profiling server in your code on port 20020:

import (
    "net/http"
 _ "net/http/pprof"
@icamys
icamys / elastic_import_data_bulk.py
Last active September 8, 2021 17:14
Bulk insert data from file to elasticsearch (python)
"""
Usage: python elastic_import_data_bulk.py data.ndjson
"""
import sys
import json
import logging
from elasticsearch import Elasticsearch
from elasticsearch.helpers import streaming_bulk
@icamys
icamys / elastic_import_data.py
Last active May 22, 2019 23:09
Import data from file to elasticsearch (python)
import json
from elasticsearch import Elasticsearch
filename = './import-files/data.json'
es = Elasticsearch("http://localhost:9200", http_auth=('elastic', 'changeme'))
i = 1
f = open(filename)
@icamys
icamys / gulpfile.js
Last active December 29, 2018 01:42
Gulp 4 gulpfile.js (assets builder + JSCS + JSHint)
/*jslint node: true */
'use strict';
// ## Globals
var argv = require('minimist')(process.argv.slice(2));
var autoprefixer = require('gulp-autoprefixer');
var changed = require('gulp-changed');
var concat = require('gulp-concat');
var gulp = require('gulp');
var gulpif = require('gulp-if');