ВОПРОС Как защитить свой проект от взломов?

aykutgunes

Местный
Да, способов много, и на каждую защиту да найдется обход, но все же возникает вопрос.
Как защитить свой проект от взлома? SQL иньекций и XSS атак? Видел, что некоторые встраивают свой код и выводят весь деп, как это избежать?
Как заполнить robots.txt и .htaccess чтобы обезопасить себя хотя бы от школохакеров?
 

CRAFTGAMING

Участник
Местный
Да, способов много, и на каждую защиту да найдется обход, но все же возникает вопрос.
Как защитить свой проект от взлома? SQL иньекций и XSS атак? Видел, что некоторые встраивают свой код и выводят весь деп, как это избежать?
Как заполнить robots.txt и .htaccess чтобы обезопасить себя хотя бы от школохакеров?
Поставь на админку,пин-код и используй в файле логин пароль через админку,а фильтрацию поставь на пополнение и вывод,что б не накрутили,поставь привязку кошелька,или же поставь платёжный пароль который высылается на почту
 

aykutgunes

Местный
Поставь на админку,пин-код и используй в файле логин пароль через админку,а фильтрацию поставь на пополнение и вывод,что б не накрутили,поставь привязку кошелька,или же поставь платёжный пароль который высылается на почту
Как реализовать фильтрацию?
 

aykutgunes

Местный
хватит обзываться!!!
Что в роботс и хттакцес прописывать?
вот этот файл security.php безопасен? Это действительно защита?

PHP:
<?php // защита от GoodScript.ru
function check_text($text) {
      $arraysql = array('UNION','SELECT','OUTFILE','LOAD_FILE','GROUP BY','ORDER BY','INFORMATION_SCHEMA.TABLES','BENCHMARK','FLOOR','SLEEP','CHAR');
      $replacesql ='';
      $text2=$text;
      $text2=mb_strtoupper($text2);
      $text2=str_replace($arraysql, $replacesql, $text2,$count);
      if($count!=0){ echo "Ошибка, повторите ввод. "; exit;}
      
      $array_find = array("'",'"','/**/','0x','/*','--');
      $array_replace ='';
      $text=str_replace($array_find, $array_replace, $text);
    return $text;
}
foreach($_GET as $i => $value){ $_GET[$i]=check_text($_GET[$i]);}
foreach($_POST as $i => $value){ $_POST[$i]=check_text($_POST[$i]);}
foreach($_COOKIE as $i => $value){ $_COOKIE[$i]=check_text($_COOKIE[$i]);}

?>
 

jameson

Администратор
Все фермы уязвимы, как защитить проект на движке фф? Да никак - я спасался смс подтверждениями например, но сами дыры движка это не закрывало, там уязвимостей 100500+ тут нужно либо с нуля его писать, но кому это надо, либо костыли ставить...
 

pligin

Команда форума
Администратор
Все фермы уязвимы, как защитить проект на движке фф? Да никак - я спасался смс подтверждениями например, но сами дыры движка это не закрывало, там уязвимостей 100500+ тут нужно либо с нуля его писать, но кому это надо, либо костыли ставить...
так написано с нуля уже.... но не все еще перепроверено... желающих вообще нет затестить скрипт
 

jameson

Администратор
так написано с нуля уже.... но не все еще перепроверено... желающих вообще нет затестить скрипт
БлядЪ я про другое структура скрипта известна и все знают куда какой запрос засылать мы это с тобой IRL обсуждали.
 

aykutgunes

Местный
так написано с нуля уже.... но не все еще перепроверено... желающих вообще нет затестить скрипт
БлядЪ я про другое структура скрипта известна и все знают куда какой запрос засылать мы это с тобой IRL обсуждали.
А по поводу файла security.php что? ЧТо за зверь? стоит его оставлять или нет?
 

aykutgunes

Местный
нах он нужен, если все входящие данные фильтровать?!
Я не знаю есть ли у меня фильтрация)


все зависит от того что этот файл содержит
Вот код:

PHP:
<?php // защита от GoodScript.ru
function check_text($text) {
      $arraysql = array('UNION','SELECT','OUTFILE','LOAD_FILE','GROUP BY','ORDER BY','INFORMATION_SCHEMA.TABLES','BENCHMARK','FLOOR','SLEEP','CHAR');
      $replacesql ='';
      $text2=$text;
      $text2=mb_strtoupper($text2);
      $text2=str_replace($arraysql, $replacesql, $text2,$count);
      if($count!=0){ echo "Ошибка, повторите ввод. "; exit;}
      
      $array_find = array("'",'"','/**/','0x','/*','--');
      $array_replace ='';
      $text=str_replace($array_find, $array_replace, $text);
    return $text;
}
foreach($_GET as $i => $value){ $_GET[$i]=check_text($_GET[$i]);}
foreach($_POST as $i => $value){ $_POST[$i]=check_text($_POST[$i]);}
foreach($_COOKIE as $i => $value){ $_COOKIE[$i]=check_text($_COOKIE[$i]);}

?>
 

CRAFTGAMING

Участник
Местный
так написано с нуля уже.... но не все еще перепроверено... желающих вообще нет затестить скрипт
Я щас тестирую,и делаю на нём потом отпишу по коду вообще всё чётко
 

pligin

Команда форума
Администратор
Я не знаю есть ли у меня фильтрация)




Вот код:

PHP:
<?php // защита от GoodScript.ru
function check_text($text) {
      $arraysql = array('UNION','SELECT','OUTFILE','LOAD_FILE','GROUP BY','ORDER BY','INFORMATION_SCHEMA.TABLES','BENCHMARK','FLOOR','SLEEP','CHAR');
      $replacesql ='';
      $text2=$text;
      $text2=mb_strtoupper($text2);
      $text2=str_replace($arraysql, $replacesql, $text2,$count);
      if($count!=0){ echo "Ошибка, повторите ввод. "; exit;}
     
      $array_find = array("'",'"','/**/','0x','/*','--');
      $array_replace ='';
      $text=str_replace($array_find, $array_replace, $text);
    return $text;
}
foreach($_GET as $i => $value){ $_GET[$i]=check_text($_GET[$i]);}
foreach($_POST as $i => $value){ $_POST[$i]=check_text($_POST[$i]);}
foreach($_COOKIE as $i => $value){ $_COOKIE[$i]=check_text($_COOKIE[$i]);}

?>
В своем скрипте ты можешь много раз увидеть intval($_POST['sum'])
intval() - Возвращает целое значение переменной
Но intval() - это конечный результат непроверенных входящих данных.
Поэтому требуется проверять не intval(), а фильтрами PHP
точный пример:
PHP:
$sum = filter_var($_POST['sum'],FILTER_VALIDATE_INT);
if($sum !== false){
    //все пучком
}else{
    //какая-то хрень
}
FILTER_VALIDATE_INT проверяет является ли переменная целым числом. Если переменная не целое число, то возвращает false.
НО, если ввести число "-1000", то оно пройдет все эти проверки, т.к. оно является целым числом... А нам-то нужно целое положительное число. И вот тут должен работать мозг программиста и отсечь эту возможность... Самый простой вариант - это модуль числа, т.е. abs().
Пример:
PHP:
<?php
echo abs(-4.2); // 4.2 (double/float)
echo abs(5);    // 5 (integer)
echo abs(-5);   // 5 (integer)
либо проверить, что число не меньше 0 и сказать "Сударь Вы дурак! Меньше 0 вводить нельзя!"
Подробнее о фильтрах валидации данных ТУТ
Подробнее об очищающих фильтрах данных ТУТ
 

CRAFTGAMING

Участник
Местный
А не проще брать дизайн копирать с какого хочешь скрипта стили и html class добовлять в скрипт ТыЦ и тестировать а не с гавно кодом который бегает по пабликам и запускать, @pligin , @jameson правы сама ферма непредсказуемая да и даже идёшь на свой страх и риск
 

testuser

Участник
Я ПРОСТО МОНИТОРЮ ВВОД ВЫВОД пускай взламывают все равно ничего не получат )))
 
Верх