14 сентября 2010, 3:58:29 PM   # 1
 
 
Сообщений: 62
Цитировать по имени
цитировать ответ
по умолчанию Re: PHP цифрового Bitcoin магазин

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Это (очень плохо) кусок PHP кода, который использует JSON-RPC, чтобы создать Bitcoin хранилище для цифровой информации (например, пароль для определенного файла или входа в систему информации для определенного сайта). Он использует клиентский скрипт JSON-RPC PHP, чтобы соединиться с bitcoind.

Код:
// (с) MrBison [m.zubrov@gmail.com], 2010
// Эта программа является свободным программным обеспечением; вы можете распространять и / или изменять
// его в соответствии с условиями GNU General Public License, опубликованной
// Фонд свободного программного обеспечения; либо версии 2 Лицензии, или
// (по вашему выбору) любой более поздней версии.
//
// Эта программа распространяется в надежде, что это будет полезно (и весело!),
// но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий
// или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ. См
// GNU General Public License для более подробной информации.
//
// Вы должны были получить копию GNU General Public License
// вместе с этой программой; если нет, то пишите на свободное программное обеспечение
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

require_once ('./includes/jsonRPCClient.php');

функция 
случайное зерно()
{
  список(
$ tmp1$ tmp2знак равно взрываться(«»микропоры());
  возвращение (поплавок) 
$ tmp1 + ((С плавающей точкой) $ tmp2 100000);
}
mt_srand(случайное зерно());

если (! Исеть (
$ _COOKIE["Bitcoinsessionid"])) { $ сессия знак равно mt_rand() + (INT) (микропоры() *1000); } Еще { $ сессия = (Целое) $ _COOKIE["Bitcoinsessionid"]; }
если (!
is_numeric($ сессия)) умереть («Это выглядит как попытка инъекции SQL.»);
SetCookie("Bitcoinsessionid"$ сессиявремя() +2592000); // куки действительны в течение 30 дней.

$ Bitcoin = новый jsonRPCClient("HTTP: // rpcuser: rpcpassword@127.0.0.1: 8332 /") или умереть("Невозможно соединиться"); 
$ ссылка знак равно mysql_connect("Mysqlserver""Mysqluser""Mysqlpass") или умереть("Не могли подключить: " mysql_error());
mysql_select_db("Bitcoin");

если ((Исеть (
$ _GET["GetAddress"])) && (is_numeric($ _GET["GetAddress"]))) {
// если мы просили адрес
$ ID знак равно $ _GET["GetAddress"];

$ запрос знак равно «Выбор адреса ОТ адреса WHERE ID =»$ ID "И SessionID =" $ сессия;

$ результат знак равно mysql_query($ запрос) или умереть(«Запрос не удалось:» mysql_error());

$ строка знак равно mysql_fetch_array($ результатMYSQL_ASSOC); если (Исеть ($ строка["адрес"])) { $ адрес знак равно $ строка["адрес"]; } Еще {
$ адрес знак равно $ Bitcoin->getnewaddress("Временный адрес") или умереть («К сожалению, не может создать адрес»);
$ запрос знак равно "INSERT INTO адресов (ID, адрес, SESSIONID) значения (" $ ID », \ "" $ адрес "\",» $ сессия ")";
mysql_query($ запрос) или умереть(«Запрос не удалось:» mysql_error()); }

// здесь мы проверяем, если кто-то уже не купить этот пункт
$ запрос знак равно «Выбор адреса ОТ адреса WHERE ID =»$ ID "И SESSIONID! =" $ сессия;
$ результат знак равно mysql_query($ запрос) или умереть(«Запрос не удалось:» mysql_error());
$ строка знак равно mysql_fetch_array($ результатMYSQL_ASSOC); если (Исеть ($ строка["адрес"])) умереть(«К сожалению, этот товар уже частично или полностью оплачены кем-то другим.»); 

$ запрос знак равно "ВЫБРАТЬ цена FROM товаров WHERE ID =" $ ID;
$ pricex знак равно mysql_query($ запрос);
$ строка знак равно mysql_fetch_array($ pricexMYSQL_ASSOC);
$ цена знак равно $ строка["цена"];

$ платный = (С плавающей точкой)$ Bitcoin->getreceivedbyaddress($ адрес1);

эхо 
"Пожалуйста, отправьте " $ цена «В Bitcoin адрес» $ адрес ". <бр />";
эхо 
"Уже отправлено: " $ платный "<бр />";
эхо 
"$ ID «»>Подтвердите удаление<бр />"; }
еще {
эхо 
"У тебя есть "$ цена $ платный "Осталось заплатить. <бр />"; }

еще

если ((Исеть (
$ _GET["Удалить"])) && (is_numeric($ _GET["Удалить"]))) {
$ ID знак равно $ _GET["Удалить"];
$ запрос знак равно «Выбор адреса ОТ адреса WHERE ID =»$ ID "И SessionID =" $ сессия// Только те, которые заплатили полностью удалить элементы
$ результат знак равно mysql_query($ запрос) или умереть(«Запрос не удалось:» mysql_error()); $ строка знак равно mysql_fetch_array($ результатMYSQL_ASSOC);
если (Исеть (
$ строка["адрес"])) { $ адрес знак равно $ строка["адрес"]; } Еще эхо «К сожалению, эта операция разрешена только для пользователей, которые приобрели этот пункт.»;
$ запрос знак равно "ВЫБРАТЬ цена FROM товаров WHERE ID =" $ ID;
$ pricex знак равно mysql_query($ запрос);
$ строка знак равно mysql_fetch_array($ pricexMYSQL_ASSOC);
$ цена знак равно $ строка["цена"];
$ платный = (С плавающей точкой)$ Bitcoin->getreceivedbyaddress($ адрес1);
если (
$ платный >знак равно $ цена) {
// если пользователь действительно купил его
$ запрос знак равно "DELETE FROM товаров WHERE ID ="$ ID;
$ результат знак равно mysql_query($ запрос) или умереть(«Невозможно удалить пункт:» mysql_error());
}
}

иначе если (! Исеть (
$ _GET["показать"]) || !is_numeric($ _GET["показать"])) {
$ результат знак равно mysql_query(«SELECT ID, название, описание, цена от реализации товаров») или умереть(«Сбой запроса 1:» mysql_error()); 
в то время как (
$ строка знак равно mysql_fetch_array($ результатMYSQL_ASSOC)) {
Printf ("
<б>% s<бр />% s<бр />Цена: <б>% s"
$ строка["Я бы"], $ строка["имя"], $ строка["описание"], $ строка["цена"]); }
} Еще {
$ ID знак равно $ _GET["показать"];
$ результат знак равно mysql_query("ВЫБРАТЬ имя, описание, цена товара FROM WHERE ID =" $ ID) или умереть(«Сбой запроса 2:» mysql_error());
в то время как (
$ строка знак равно mysql_fetch_array($ результатMYSQL_ASSOC)) {
Printf ("<б>% s<бр />% s<бр />Цена: <б>% s<бр />
Купить с Bitcoin"
$ строка["имя"], $ строка["описание"], $ строка["цена"], $ ID); }

}

mysql_free_result($ результат);
mysql_close($ ссылка);
?>

Система должна быть анонимными (поэтому он использует SessionIDs) и, возможно, даже безопасно (так как все данные, отправленные пользователем числовой (идентификатор элемента или SessionID), они фильтруются).

Он использует две таблицы MySQL: "товар" а также "адреса", Первый из них содержит 5 полей, "Я бы" (INT), "имя" (VARCHAR), "описание" (MEDIUMTEXT), "цена" (Дважды) и "пароль" (MEDIUMTEXT, это поле содержит информацию, пользователь получает, когда он платит за пункт полностью). "адреса" содержит в "Я бы" (Идентификатор элемента), "адрес" (Bitcoin адрес используется для получения денег для этого элемента) и "идентификатор сессии" (SessionID от пользователя, который решает купить товар).

Я знаю, этот код плохо, но 1) это работает (она была испытана), 2) я просто не знаю, где я должен использовать
Может быть, это послужит своего рода учебник для некоторых bitcoiners желающих использовать JSON-RPC и PHP, или что-нибудь еще, я не знаю.
MrBison сейчас офлайн Пожаловаться на MrBison   Ответить с цитированием Мультицитирование сообщения от MrBison Быстрый ответ на сообщение MrBison


Как заработать Биткоины?
Без вложений. Не майнинг.


14 сентября 2010, 4:47:51 PM   # 2
 
 
Сообщения: 1483
Цитировать по имени
цитировать ответ
по умолчанию Re: PHP цифрового Bitcoin магазин

Получил 1806 Биткоинов
Реальная история.





Черт, это трудно читать. Быстрым взгляд, выглядит солидно / годным к употреблению.

Может быть более полезным / структурированы как класс оо.
BioMike сейчас офлайн Пожаловаться на BioMike   Ответить с цитированием Мультицитирование сообщения от BioMike Быстрый ответ на сообщение BioMike

16 сентября 2010, 5:24:11 PM   # 3
 
 
Сообщений: 62
Цитировать по имени
цитировать ответ
по умолчанию Re: PHP цифрового Bitcoin магазин

Добавлены некоторые комментарии, сделал некоторые исправления, переделал его в архив с JSON-RPC (авторы, указанные в файле JSON-RPC). Оба JSON-RPC PHP и этот сценарий лицензированы под GPLv2 (или позже).
MrBison сейчас офлайн Пожаловаться на MrBison   Ответить с цитированием Мультицитирование сообщения от MrBison Быстрый ответ на сообщение MrBison

15 мая 2012, 8:39:08 AM   # 4
 
 
Сообщения: 306
Цитировать по имени
цитировать ответ
по умолчанию Re: PHP цифрового Bitcoin магазин

Общий код хорошо, однако у него есть несколько проблем, которые легко исправить.

Проблема 1:
Пусть говорят, покупатель А хочет приобрести пункт 1, но не платит за него, вещь хорошо 1 получает зарезервирован для покупателя А так, чтобы он / она может заплатить за это, теперь позволяет сказать, что у нас есть еще один покупатель B, который пытается купить один и тот же предмет он получит предупреждение о том, что пункт закупается, который является правильным, но тогда первоначальным покупателем а получает то же самое сообщение, и никто не может купить товар сейчас.

Проблема 2:
Пусть у нас есть покупатель, который получает адрес Bitcoin для каждого из товаров в корзине, нажав на покупке, но никогда не посылает никаких биткойна, теперь ни один из элементов не доступны больше никому.

Когда это работает:
Это действительно работает, когда покупатель делает покупку и посылает Bitcoin к указанному адресу, и никто не мешает покупке пытается buyit.

Как исправить:
2 дополнительных полей в базу данных товаров, один, указывающие, что элемент был зарезервирован для приобретения покупателя, который сгенерировал адрес Bitcoin, а другое поле с полем времени истекает покупку, если он не получает оплаченные в течение определенного количества время.
Кроме того, предоставить некоторые анти механизм спама, чтобы предотвратить покупателя от выбора все, ограничить количество покупок, пока они не платят.

Скажу код в целом довольно хорошо, что просто нужно немного фиксирования, дизайн приятный и простой, который является хорошей вещью.


Серджио сейчас офлайн Пожаловаться на Серджио   Ответить с цитированием Мультицитирование сообщения от Сержио Быстрый ответ на сообщение Серджио



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW