https://support.portswigger.net/customer/portal/articles/1841102-installing-burp-s-ca-certificate-in-an-android-device
Проксирование с помощью iptables
Ниже указан пример перенаправления с одного IP на другой
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to 192.168.74.129:80 iptables -t nat -A POSTROUTING -j MASQUERADE // нужен чтобы маскировать IP адрес
Обязательно нужно включить эту настройку
sysctl -w net.ipv4.ip_forward=1
Чтобы изменения в файле sysctl.conf вступили в силу, выполните следующую команду:
sysctl -p /etc/sysctl.conf
СОХРАНИТЬ ПРАВИЛА IPTABLES
Все настройки iptables, которые вы указали с помощью этих команд сохранятся только до перезагрузки. После перезагрузки компьютера все изменения будут стерты. Поэтому чтобы сохранить правила iptables, нужно выполнить специальную команду. Только в разных дистрибутивах она отличается. В Ubuntu выполните:
sudo /sbin/iptables-save
А в Red Hat или CentOS:
sudo /sbin/service iptables save
Использование модуля для обработки ошибок
Приложение можно скачать здесь.
Для передачи данных об ошибке в клиентском приложение добавить следующий скрипт (лучше в теге head)
var __error = window.onerror; var __es = []; // дополнительные параметры var __meta = { user: 'test', ver: '1.0.0' // указание версии обязательно }; var __ts = null; window.onerror = function (msg, url, num, p, err) { var str = ''; if (err && (str = err.stack)) { __es.push(str.replace(new RegExp(location.href, 'gi'), '')); if (__ts == null) { __ts = setTimeout(function () { clearTimeout(__ts); __ts = null; __se(); }, 500); } } if (__error) return __error(msg, url, num, p, err); return false; } /** * отправка сообщений об ошибке */ function __se() { var xhr = new XMLHttpRequest(); xhr.open("POST", 'http://localhost:3000/api/error?id=1', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify({ m: __meta, e: __es })); }
Заменив в нем адрес отправки http://localhost:3000/api/error?id=1 не требуемый. При этом идентификатор приложения (id) можно указать любой.
Так же с клиента можно дополнительно передавать требуемые поля для анализа в объекте __meta.
Серверное приложение имеет три активные ссылки:
- /api/error — принимает постовые запросы с ошибками
- /list?id=1&ver=0.0.0 — выводит список ошибок по приложению (id) и версии (ver)
- /upload — позволяет загружать на сервер приложения для обработки
Для корректной работы требуется:
- чтобы в папке public были созданы папки: apps, logs, temp
- дать права этим папкам на запись
Распознавание текста с изображения
В интернете куча приложения, которые можно использовать для распознавания текста с изображения. В данной статье речь пойдет про Tesseract.
Данное приложение можно установить, как на Linux, так и на Windows. Далее будет показан пример работы с данным приложение под Windows.
Скачиваем установочный файл http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.00dev.exe
Запускаем его. Когда будет предложено выбрать устанавливаемые компоненты оставляем по умолчанию. Ну вот и все теперь можно пользоваться данным приложением. Работать с ним нужно через консоль, запускаем её.
cd /d «C:\Program Files (x86)\Tesseract-OCR»
tesseract.exe «c:\… путь к изображению.png» «e:\text» -l eng -psm 3
где «e:\text» — путь к файлу, где будет «распарсенный» текст,
-l eng — язык распознования (можно указать и rus, но для этого надо загрузить данные)
-psm 3 — параметр по умолчанию
Всю справочную информацию можно получить выполнив команду tesseract.exe —help
Чтобы дополнительно подключить другие языки распознаванию нужно с https://github.com/tesseract-ocr/langdata скачать требуемый файл *.traineddata и перенести его в папку C:\Program Files (x86)\Tesseract-OCR\tessdata
Есть изображение с указанным текстом tesseract «путь к изображению.png» «e:\text» -l eng -psm 3 и в папке e:\ будет файл text.txt в котором будет текст Hello my friend
Запуск node js приложения на iis
Установка Node Js
1.Устанавливаем nodejs https://nodejs.org/en/ (ставить последнюю LTS версию)
2.https://github.com/tjanczuk/iisnode — от сюда устанавливаем расширение для iis (см. Installing for IIS 7.x/8.x)
Настройка IIS
1. https://www.iis.net/downloads/microsoft/url-rewrite устанавливаем расширение для iis
2. Перезагрузить сервер
Статьи:
https://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx
https://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html
Создание клиента socket.io на c# для nodejs
1. Создаем консольное приложение
2. Install-Package SocketIoClientDotNet
using System; using Quobject.SocketIoClientDotNet.Client; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { var socket = IO.Socket("http://localhost:5000/server.js"); socket.On(Socket.EVENT_CONNECT, () => { socket.Emit("message", "0"); }); socket.On("hi", (data) => { Console.WriteLine(data); socket.Disconnect(); }); Console.ReadLine(); } } }
Статьи:
https://github.com/Quobject/SocketIoClientDotNet
Отладка в nodejs
Актуально для версии Node JS 8.9.0
Устанавливаем:
npm install —global node-inspect
Выполняем команду: node —inspect-brk [filename].js
Должен открыться chrome для начала отладки
Полезные статьи.
https://nodejs.org/en/docs/inspector
https://nodejs.org/api/debugger.html
https://github.com/nodejs/node-inspect
Sencha cmd — быстрый старт
Создание проекта:
— генерация проекта
sencha -sdk «D:\Install_new\sencha\ext-6.0.0-gpl\ext-6.0.0\» generate app App1 «E:\serp\work\_sencha\App1»
— или
sencha -sdk «D:\Install_new\sencha\ext-6.0.0-gpl\ext-6.0.0\» generate app -modern App1 «E:\serp\work\_sencha\App1»
— дальше перейти в сгенерированный проект
cd /D «E:\serp\work\_sencha\App1»
— запускаем проект, теперь он доступен по адресу http://localhost:1841/
sencha app watch
— билдим
sencha app build modern production
sencha app build modern production «d:/temp»
sencha app build modern testing
— дополнительный действия при билде(build.xml), в примере ниже копирование файла config.json
Как собрать проект под android:
— чтобы cordova была доступна из командной строки
npm install -g cordova
— подготавливаем проект, создает папку cordova и добавляет в app.json «builds»: «native», если builds не был определен
— «builds»: «native» надо будет еще подправить ручками, выбрать «platforms»
sencha cordova init com.iserv.cabinet Cabinet
«builds»: {
«native»: {
«packager»: «cordova»,
«cordova»: {
«config»: {
«platforms»: «android»,
«id»: «com.iserv.cabinet»,
«name»: «Cabinet»
}
}
}
},
— запускает приложение на android
sencha app run native
— билдит мобильную версию. Для android результат кладет в cordova\platforms\android\build\outputs\apk\android-debug.apk
sencha app build native
— установка на android
D:\android-sdk\platform-tools\adb kill-server
D:\android-sdk\platform-tools\adb install -r «cordova\platforms\android\build\outputs\apk\android-debug.apk»
— shell
D:\android-sdk\platform-tools\adb shell
D:\android-sdk\tools\ddms.bat
— какие устройства подключены к компьютеру
D:\android-sdk\platform-tools\adb devices
Запуск тестов Siesta из консоли с помощью PhantomJS
В проект добавлен скрипт run-siesta.js в папку с тестами. Он предназначен для того, чтобы с помощью PhantomJS запускать тесты Siesta. run-siesta.js использует API PhantomJS для запуска страницы c тестами и выводит в консоль и в текстовый файл siesta_log.txt логи, которые формируются на странице index.html.
Также в скрипте index.js изменен Harness.configure — в него добавлены дополнительные обработчики событий: testfinalize, testsuiteend и условие автозапуска autoRun: true.
При завершении тестов run-siesta.js парсит тестовую страницу на общее количество пройденных тестов, выводит общее затраченное время и возвращает соответствующий числовой идентификатор в консоль (0 – успех, 1 — ошибка).
Пример команды в консоли: D:\…\Omnis-ExtJS\Pir\Siesta\phantomjs run-siesta.js http://localhost:62681/Siesta/index.html
Для выполнения команды ‘phantomjs’ нужно установить сам PhantomJS — http://phantomjs.org/download.html, и прописать в PATH системы — путь к исполняемому файлу phantomjs.exe, или скопировать phantomjs.exe в папку с тестами D:\…\Omnis-ExtJS\Pir\Siesta\ и запускать команду: D:\…\Omnis-ExtJS\Pir\Siesta\phantomjs.exe run-siesta.js http://localhost:62681/Siesta/index.html На момент написания использовалась версия PhantomJS 2.0 — http://phantomjs.org/
Sencha CMD. Как правильно подключить собственные библиотеки.
Надо начать с того, что приложение, запущенное с помошью «sencha app watch», работает немного по-другому, чем приложение, собранное с помощью «sencha app build».
В случае «sencha app watch» нет никакого минификатора, загрузка библиотек идет из секции «js», определенной в файле app.json. Единственное, что собирается, это стили css, они кидаются в папку build/temp
В случае «sencha app build» есть минификатор, все библиотеки собираются в один файл. Пути для минификатора прописываюся в секции «classpath» файла app.json. При этом загрузку библиотек из секции «js» тоже никто не отменяет.
Из этого рождаются правила:
•если вы хотите подключить свою библиотеку, поместите ее в один из каталогов, определенный в «classpath», этим мы обеспечим то, что наша библиотека попадет в общий файл при работе минификатора.
•пропишите путь к этой библиотеки в секции «js», это позволит загружать ее при команде «sencha app watch».
•для прописанного пути в секции «js» поставьте «bootstrap»: true. Это нужно для того, чтобы эти пути учитывались только для «sencha app watch», но не попадали в финальный файл конфигурации после команды «sencha app build».
Если что-то сделать неправильно, то Extjs ругнется примерно такими словами: «Failed to resolve dependency It.app.Application…»
Пример подключения библиотеки it.core.js:
"classpath": [ "app", "${toolkit.name}/src" ], "js": [ { "path": "app/it.core.js", "bootstrap": true }, ... ],