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

01.09.2009, 20:10
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от FireFenix
тада
ну не все.....а к которым кросс доступ нужен
не это как-то не по-гиковски...я предлагаю как вариант...пропарсить инклудный файл, конструктором автостарта регуярками....сейачс напишу....посмотрим что получится=)
|
|
|

01.09.2009, 20:25
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от RedBull@12
не это как-то не по-гиковски...я предлагаю как вариант...пропарсить инклудный файл, конструктором автостарта регуярками....сейачс напишу....посмотрим что получится=)
Это индусский код - передавать глоабльные переменные через подключаемый файл...... для каждого нового класса
|
|
|

01.09.2009, 21:00
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от FireFenix
Это индусский код - передавать глоабльные переменные через подключаемый файл...... для каждого нового класса
1- не для каждого нового класса, а для экзампляров.
2- сейча напишу посмотрим что получится.
просто использовать класс в качестве контейнера, это совершенно дико...не считая что это только частичное копирование данных...копипастом можно заниматься и так...ручками все коды собирать и нахер убрать php
Последний раз редактировалось RedBull@12; 01.09.2009 в 21:08..
|
|
|

01.09.2009, 21:58
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
ЭВРИКА!
Ура!
2FireFenix,элементарно все оказалось!
PHP код:
<?php
class base {
public $vars;
function __construct() {
require_once("vars.php");
$this->vars = $__VARS;
print_r($this->vars);
}
}
$base = new base;
?>
Последний раз редактировалось RedBull@12; 01.09.2009 в 22:01..
|
|
|

02.09.2009, 02:31
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме: 912928
Репутация:
137
|
|
PHP код:
<?
$method="POST";
$addr="/login.php"; //адрес относительно корня сервера,
$target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80; //порт сервера или прокси
$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);
$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;
echo $in;
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
$result = socket_connect ($socket, $target, $targetport);
socket_write($socket, $in, strlen($in));
$o="";
while ($out = socket_read ($socket, 2048)) {
$o.=$out;
}
echo $o;
?>
Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
Последний раз редактировалось zavra; 02.09.2009 в 02:34..
|
|
|

02.09.2009, 02:50
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от zavra
PHP код:
<?
$method="POST";
$addr="/login.php"; //адрес относительно корня сервера,
$target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80; //порт сервера или прокси
$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);
$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;
echo $in;
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
$result = socket_connect ($socket, $target, $targetport);
socket_write($socket, $in, strlen($in));
$o="";
while ($out = socket_read ($socket, 2048)) {
$o.=$out;
}
echo $o;
?>
Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
так у вас адрес локальный, а хост в запросе порписан vkontakte.ru...
можно через cURL
PHP код:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($c);
curl_close($c);
//это обычный гет
PHP код:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $post);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIE, $cookies);
$body = curl_exec($c);
curl_close($c);
//это пост
http://www.php.su/functions/?cat=curl здесь подробно описао какие ключи что значат. икак пользоваться...
PHP код:
preg_match_all('|Set-Cookie: (.*);|U', $body, $results);
$cookies = implode(';', $results[1]);
регулярка для выдерания куков из пришедших хедеров
Последний раз редактировалось RedBull@12; 02.09.2009 в 03:01..
|
|
|

02.09.2009, 03:20
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме: 912928
Репутация:
137
|
|
прописал в хост http://vkontakte.ru, выдает 400 Bad Request
через curl для меня еще сложнее( но такой вариант тоже попробую, спс. с сокетами хочется до конца разобраться
|
|
|

02.09.2009, 04:05
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
тут написал функцию аунтификации и идентификации....подскажите возможно ли обойти данную аунтификацию.
cоотвественно если да, то каким макаром.
PHP код:
public function security($string,$i) {
if ($i == 0) { ... }
elseif ($i == 1) { ... }
elseif ($i == 2) { ... }
elseif ($i == 3) {
$string = mysql_real_escape_string($string);
}
return $string;
}
}
public function login($login,$pass) {
$this->connect();
$login = strtolower($this->security($login,3));
$login = base64_encode($login);
$pass = base64_encode($this->security($pass,3));
$result = $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'");
if ($result && mysql_num_rows($result) > 0) {
$ses = session_id();
if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
$agent = $this->security($_SERVER['HTTP_USER_AGENT'],3);
$referer = $this->security($_SERVER['HTTP_REFERER'],3);
$forwarded = $this->security(getenv(HTTP_X_FORWARDED_FOR),3);
$ip = $_SERVER["REMOTE_ADDR"];
$time = time() + (60*60*6);
$result = $this->query("INSET INTO `login`(`hash`,`date_begin`,`date_end`,`login`,`ip`,`agent`,`referer`,`forwarded`) VALUES('".$ses."','".time()."','".$time."','".base64_decode($login)."','".$ip."','".$agent."','".$referer."','".$forwarded."')");
}
}
else { }
$this->close();
}
public function ident() {
$this->connect();
$ses = session_id();
if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
$result = $this->query("SELECT * FROM `login` WHERE `hash`='".$ses."' AND `ip`='".$_SERVER["REMOTE_ADDR"]."'");
if ($result && mysql_num_rows($result) > 0) {
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($row['date_begin'] <= time() && $row['date_end'] >= time()) {
return 1;
}
else { return 0; }
}
else { return 0; }
}
else { return 0; }
$this->close();
}
|
|
|

02.09.2009, 04:07
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от zavra
прописал в хост http://vkontakte.ru, выдает 400 Bad Request
через curl для меня еще сложнее( но такой вариант тоже попробую, спс. с сокетами хочется до конца разобраться
честно говоря с сокетами плохо знаком, но вот cURL довольно хорошо знаю. примеры кода который скинул..это с рабочего движка.
|
|
|

02.09.2009, 05:20
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от b3
PHP код:
$result = $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'");
если нет addslashes() в форме то можно авторизоватся введя логин: 1 or 1=1-- 1
и любой пароль.
=/...а чем не нравится mysql_real_escape_string через которую все пропускается...специально привел секьюрный метод...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|