Как с помощью iptables разрешить доступ к локальному порту только для списка IP адресов

Возможно, есть способы и попроще, но я сделал так.

Защищать будем, например, Asterisk (по-умолчанию порт для протокола SIP 5060)

Создаем новую цепочку:

iptables -N asterisk-manual
iptables -I INPUT -i eth0 -p udp --dport 5060 -j asterisk-manual
Читать далее «Как с помощью iptables разрешить доступ к локальному порту только для списка IP адресов»

Флаги mod_rewrite

Коротко о главном

mod_rewrite – специальный модуль, входящий в состав Apache, позволяющий подменять адреса страниц. Например, «некрасивый» адрес страницы http://вашсайт.ru/showGroup.php?id=blog&subid=programming, можно сделать более «красивым» http:// вашсайт.ru/blog/programming.

Настройки перенаправления делаются в файле .htaccess.

Я не буду здесь подробно описывать, как это работает. В двух словах, включается mod_rewrite командой RewriteEngine On, далее, создаются правила перенаправления, в шаблонах перенаправления используются обычные регулярные выражения:

Читать далее «Флаги mod_rewrite»

Установка Node.js

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs

если возникнут ошибки при установке

sudo yum install gcc-c++ make

проверяем

node -v
v8.12.0

Простой JSON сервер

Создаем файл hello_http.js со следующим содержимым

var port = 8080;
var http = require("http");
var server = http.createServer();
server.on('request', request);

server.listen(port, (err) => {
    if (err) {
        return console.log('something bad happened', err)
    }
    console.log(`server is listening on ${port}`)
})

function request(request, response) {
    var store = '';
    request.on('data', function(data){
        store += data;
    });
    request.on('end', function(){
        var js_name = JSON.parse(store);
        console.log(js_name['name']);
        //response.setHeader("Content-Type", "text/json");
        //response.setHeader("Access-Control-Allow-Origin", "*");
        //response.end(store)
        //store = JSON.parse(store);.
        response.end('city: '+js_name['address']['city']);
    });
}
Читать далее «Простой JSON сервер»

Проверка значения на присутствие в массиве

$OrderStatusId=60;
if(in_array($OrderStatusId, array(60,61,64))) {
    print "Значение присутствует";
} else {
    print "Значение не найдено";
}

или наоборот

$OrderStatusId=60;
if(!in_array($OrderStatusId, array(60,61,64))) {
    print "Значение не найдено";
} else {
    print "Значение присутствует";
}

Правильная работа с базой MSSQL

$server="SERVER_IP";
$user="USER_NAME";
$pass="USER_PASS";
$database="BASE";

print "--START--<br>";
try{
    $db = mssql_connect($server, $user, $pass);
    if (!$db) throw new Exception ("Невозможно установить соединение с базой данных.");
    if (!mssql_select_db($database,$db)) throw new Exception ("Невозможно выбрать базу данных.");
###
    $query1 = "SET CONCAT_NULL_YIELDS_NULL ON"; # настройка для MSSQL (чтобы 'string'+NULL давало NULL, а не 'string')
    if(!mssql_query($query1)) throw new Exception("Невозможно установить SET CONCAT_NULL_YIELDS_NULL ON");
### 
    $querys = "EXEC [dbo].[REP_OrdersClient] @DateBegin = '20180501', @DateEnd = '20180704', @ContractNumberPrimary = '12', @ContractNumber = '38957'";
    $result=mssql_query($querys);
    
    if (!$result) throw new Exception("Невозможно установить соединение с сервером");
    if (!mssql_num_rows($result)) {
        echo 'Не найдено ни одной записи.';
    } else {
        while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) {
            $results[]= $row;
        }
    }
    mssql_free_result($result);
}
catch(Exception $e){
    echo $e->getMessage();
}
print_r($results);

Исключения TRY CATCH

Перехват ошибок без остановки работы самого скрипта

$server='Server';
$user='Phpweb_po';
$pass='fzHjYt_';
$database='Main_';

try{
    $db = mssql_connect($server, $user, $pass);
    if (!$db) throw new Exception ("Невозможно установить соединение с базой данных.");
    if (!mssql_select_db($database,$db)) throw new Exception ("Невозможно выбрать базу данных.");
    $login_name=$_SESSION['Zend_Auth']['storage']->Usr;
    $role=$_SESSION['Zend_Auth']['storage']->Roles[0]['Role'];
}catch (Exception $e){
    echo $e->getMessage();
}