Archive for Duben, 2008

Šílená captcha na RAPIDSHARE

Středa, Duben 30th, 2008

Touha po ovladačích k notebooku Acer Aspire 5715Z pro Windows XP mě přivedla až na Rapidshare. Vzhledem ke skutečnosti, že tam nevlastním prémiový účet, vyčkal jsem nějaké tři minuty na přípravu souboru ke stažení. Následně se mi objevila tato captcha – ochrana proti spamu:

Rapidshare captcha

Doposud jsem si myslel, že mám docela dobré oči a přírodovědu na základní škole jsem zvládl bez sebemenších problémů. Rozpoznat ale na takovém obrázku kočičku od pejska je pro mě docela velký problém. Za hodinu mám z osmi pokusů skóre 0:8.

Jak ušetřit >50,- Kč při koupi .CZ domény?

Čtvrtek, Duben 24th, 2008

Nebudu to dlouho okecávat:

při registraci u Forpsi zvolte platbu v USD, zaplaťte kartou a právě jste o nejméně 50,- Kč bohatší (dle vývoje kurzu Kč>$).

V sobotu jsem registroval dvě .CZ domény (www.laskavebohyne.cz a variantu s pomlčkou – což v blízké době budou mimochodem kchůl typo domény) a jedna vyšla bratru na 183,09 Kč s DPH.

Takže tak.

CubeCart: generování XML feedu pro zbozi.cz

Pondělí, Duben 14th, 2008

Jistě se shodneme na tom, že vyhledávač zboží od Seznamu, zbozi.cz, generuje nezanedbatelný traffic a zisky každého eshopu. Samozřejmě za předpokladu, že takový internetový obchod je v tomto vyhledávači zboží registrován a poskytuje data v potřebném formátu. CubeCart ve své základní „výbavě“ generátor XML feedu nemá a nenašel jsem ho ani jako dostupný modul.

Vzhledem ke svým programátorským (ne)schopnostem jsem hledal jednoduché řešení, které by zahrnovalo maximálně drobnou úpravu hotového skriptu. Řešení jsem našel zde a jmenuje se XML_Serializer. Jedná se PEAR balíček pro práci s XML dokumenty. Nainstalovat PEAR na sdílený webhosting se mi podařilo vcelku bez potíží, čili jsem mohl přikročit k vlastnímu zakomponování všeho potřebného do CubeCartu.

Základem je soubor (já si ho nazval genfeed.php), který se bude starat o vlastní generování XML feedu. Soubor je umístěný v rootu domény, respektive v adresáři, kde se nachází instalace Cubecartu.

Obsah souboru je následující:

<?php
  // Nastaveni absolutni cesty k rootu instalace PEARu
  $path = ‘/data/www/example.com/www.example.com/pear/PEAR’;
  set_include_path(get_include_path() . PATH_SEPARATOR . $path);
  // Vlozeni tridy XML_Serializer
  require("XML/Serializer.php");
  // Vlozeni promennych (CubeCart)
  include_once("includes/ini.inc.php");
        include_once("includes/global.inc.php");
       
        //* <rf> search engine friendly url mod */
        include_once("includes/sef_urls.inc.php");     
        $sefroot = sef_script_name();
        if($config[‘sef’] == 0 && preg_match(‘#’.$glob[‘rootRel’].$sefroot.‘#i’, $_SERVER[‘PHP_SELF’])) {
        // if this script got called by the shop script and we aren’t using sef urls then redirect to index.php 
                Header("Location: ".$glob[‘rootRel’]."index.php");
        }
        /* <rf> end of mod */
       
        // Inicializace databaze
        include_once("classes/db.inc.php");
        $db = new db();
        // vlozeni funkci
        include_once("includes/functions.inc.php");
        $config = fetchDbConfig("config");
       
  // SQL dotaz na tabulku produktu
  $prods = $db->select("SELECT productId, image, price, name, sale_price, description, stock_level, useStockLevel FROM ".$glob[‘dbprefix’]."CubeCart_inventory ORDER BY productId DESC");
  for($i=0;$i<count($prods);$i++){
    $xml[] = array (
      ‘PRODUCT’ => $prods[$i][‘name’],
      ‘DESCRIPTION’ => strip_tags($prods[$i][‘description’]),
      ‘AVAILABILITY’ => ($prods[$i][‘useStockLevel’]=="1" && $prods[$i][‘stock_level’]=="0" ? "-1"  : "0"),
      ‘URL’ => $glob[‘storeURL’].$glob[‘rootRel’].generateProductUrl($prods[$i][‘productId’]),
      ‘IMGURL’ => $glob[‘storeURL’].$glob[‘rootRel’].‘images/uploads/’.$prods[$i][‘image’],
      ‘PRICE_VAT’ => ($prods[$i][‘sale_price’]!="0.00" ? $prods[$i][‘sale_price’] : $prods[$i][‘price’])
      );
  }
  // Serializace
  $options = array( "addDecl" => true,  "defaultTagName" => "SHOPITEM",
  "linebreak" => "\n",  "encoding" => "UTF-8",  "rootName" => "SHOP", "indent" => "\t");
  $serializer = new XML_Serializer($options);
  $serializer->serialize($xml);
 
  // Výstup
  // header("Content-Type: text/xml");
  // echo $serializer->getSerializedData();
 
  // Zapis do souboru feed.xml – predklada se robotum
  $vystup = $serializer->getSerializedData();
  $f = fopen ($glob[‘rootDir’]."/feed/feed.xml", "w");
  fwrite($f, $vystup);
  fclose ($f);
?>

 

Vzhledem k několika tisícům položek v databázi skript pouze vygeneruje výsledný XML feed do adresáře. Abych nemusel spouštět skript ručně, používám na to CRON. Výsledkem je XML soubor (feed.xml), který vypadá následovně:

<?xml version="1.0" encoding="UTF-8"?>
<SHOP>
        <SHOPITEM>
                <PRODUCT>Lavera – Men Care: Voda po holení</PRODUCT>
                <DESCRIPTION>S BIO přesličkou a přírodními minerály. Rostlinné BIO esence z vilínu, měsíčku a echinacei pleť po holení efektivně uklidňují. Pečující receptura z rostlinnými látkami a BIO aloe vera poskytují ultimativní hydrataci. Mořské minerály, kyselina křemičitá a BIO Přeslička mají dezinfekční působení.</DESCRIPTION>
                <AVAILABILITY>0</AVAILABILITY>
                <URL>http://www.example.com/lavera/lavera-men-care-voda-po-holeni-prod_10.html</URL>
                <IMGURL>http://www.example.com/images/uploads/la26042.jpg</IMGURL>
                <PRICE_VAT>209.00</PRICE_VAT>
        </SHOPITEM>
        <SHOPITEM>
                <PRODUCT>Urtekram: Sprchový gel Růže</PRODUCT>
                <DESCRIPTION>Jemný sprchový gel s výtažky z organické růže, organického jasmínu a s přídavkem esenciálního oleje z kakostu. Bez konzervačních látek, barviv, parfémů a živočišného glycerínu. Vhodné i pro citlivou pokožku. Bez syntetických tensidů.</DESCRIPTION>
                <AVAILABILITY>0</AVAILABILITY>
                <URL>http://www.example.com/urtekram/urtekram-sprchovy-gel-ruze-prod_9.html</URL>
                <IMGURL>http://www.example.com/images/uploads/ur8312.jpg</IMGURL>
                <PRICE_VAT>205.00</PRICE_VAT>
        </SHOPITEM>
</SHOP>

 

Soubor obsahuje všechny specifikací požadované informace a nyní je možno ho předhodit robotovi zbozi.cz.

PAYPAL, PAYPAY – senzace se nekoná

Neděle, Duben 13th, 2008

Žádný podvod, žádná bezpečnostní díra, dokonce i míra mé paranoie je v pořádku. Své finance a osobní údaje máte u těchto internetových platebních služeb naprosto v bezpečí. Ale popořadě.

PAYPAYL i PAYPAY si při ověřování platební karty blokují z účtu, ke kterému karta náleží, malou částku. Bohužel – ani jedna společnost na tuto skutečnost při zadávání údajů platební karty neupozorní. PAYPAYL vás upozorní na stržení 50,- Kč, které vám pak zpětně připíše na paypal účet, ale ne na blokaci další částky. PAYPAY vás neupozorní na nic. Blokace malé částky, způsobená PAYPALem a zobrazující se v nezaúčtovaných platbách, je po několika dnech stornována. Ne tak u PAYPAY.

Z komunikace s technickou podporou PAYPAY (v českoslovenštině), jsem se dozvěděl následující:
BUYPAYMENTS*COM je „procesor platebních karet“ pro PAYPAY. Jak jsem psal dříve, BUYPAYMENTS byl uveden jako příjemce platby $1, která ve mně vyvolala pochybnosti. Dále mi technická podpora sdělila, že daná částka mi byla vrácena zpět „na kartu“. Což samozřejmě nemohlo být provedeno, jelikož jsem kartu zablokoval. Toto ještě budu muset dořešit. EDIT 14.4.2008 – částka už mi přistála na účtu.

Opět jsem o něco moudřejší. Pochopil jsem, že PAYPAY je lowcost služba a jako taková používá i lowcost partnery, kteří se ne vždy na první pohled musí jevit jako spolehliví. Na druhou stranu – PAYPAY mi vytrhla příslovečný trn z paty, když jsem řešil jednoduchý a efektivní převod financí do Thajska. Jednalo se o čtyřmístnou částku v USD a cena za tento převod byla výrazně levnější, než dle ceníkových cen bank. Převod proběhl během 4 pracovních dnů, což je na mezinárodní transakci, myslím, dostačující rychlost.

Závěr – je lepší být paranoidní, než „oholený“. :)

Bezpečnostní díra, pokus o podvod, nebo…?

Úterý, Duben 8th, 2008

Nebo jsem jen lama, která nerozumí výpisům z banky a mechanismu ověření debetní platební karty službou PAYPAL?

Začnu objektivními fakty. Dnes, tzn. 8.4.2008 jsem se rozhodl přiřadit ke svému PAYPAL účtu debetní platební kartu, jelikož platnost původní k poslednímu březnu vypršela. Kartu mi vydala GE Money a.s., – je to taková strhávačka k nalepení na původní kartu MasterCard Internet. Karta je použitelná pouze pro platby přes internet. Využívám ji už od roku 2004.

Na webu paypal.com jsem prošel procesem zadání čísla platební karty a ověřovacího CVC2 kódu. Karta byla přijata a na následující stránce jsem byl upozorněn, že mi karta kvůli ověření byla zatížena platbou 50,- Kč. Ověření spočívá v zadání čtyřmístného kódu z výpisu platby do rozhraní PAYPAL.

PAYPAL verifikace karty

Přišly mi dva informační emaily z adresy service@intl.paypal.com – jeden potvrzující přidání karty, druhý informující o nutnosti její verifikace dle výše uvedeného obrázku. Čas doručení emailů – 8:56 středoevropského letního času.

Až doposud jsem byl v klidu. Pro jistotu jsem si ale otevřel internetbanku a nahlédnul na nezaúčtované transakce vztahující se k internetové platební kartě.

Nezaúčtované transakce

Jak vidno, 50,- Kč si PAYPAL opravdu strhl. Co ale znamená transakce provedená (podle Popisu transakce), ve stejné minutě, ale několik vteřin předtím? Částka 15,94 Kč odpovídá částce $1. A zde začínám tušit problém. Pro pochopení celé situace se musím vrátit v čase o několik týdnů zpět, konkrétně ke 20. březnu 2008.

Moje původní karta, registrovaná u PAYPAL měla platnost do 31.3.2008. GE Money (respektive společnost Global Payment Europe) mi v průběhu března zaslala kartu „novou“, což v tomto kontextu znamená pouze výše zmíněnou strhávačku, která platnost stávající karty prodlužovala o další dva roky. Číslo karty i CVC2 kód zůstávaly nezměněny. „Novou“ kartu jsem tedy přes internetbanku aktivoval. Jakmile byla karta aktivní, pokusil jsem se ji registrovat jak v AdWords, kde kartu také používám, tak i v PAYPALu. Karta nebyla přijata ani v jednom systému. Vzhledem k tomu, že jsem v té době řešil problém, jak převést finance do Thajska, zakládal jsem si účet u společnosti PAYPAY. Ta k ověření vyžaduje, kromě jiného, verifikaci platební karty – stejně jako PAYPAL. Tudíž jsem do systému zadal svoji v té době ještě platnou kartu – ověření proběhlo, stejně jako ověření účtu, kdy PAYPAY zašle na váš bankovní účet malou částku, jejíž hodnotu je následně potřeba zadat v administraci účtu. Asi jsem paranoidní, ale po každé takové transakci si kontroluji internetbanku. V nezaúčtovaných transakcích k MasterCard internet jsem viděl blokaci částky 16 celých a nějaké drobné Kč. Říkal jsem si fajn, PAYPAY provedlo blokaci $1 při ověřování karty a pustil jsem to z hlavy.

26. března jsem však, opět, kontroloval internetbanku a tentokrát už v zaúčtovaných transakcích mě překvapila tato:

Výpis - zaúčtované platby

BUYPAYMENTS.COM – WTF?

Okamžitě se pokouším vyhledat nějaké informace o společnosti, která mi zatěžuje internetovou platební kartu částkou USD 1, a o které absolutně nic nevím. Zde je výsledek hledání.
Poznámka: oproti výsledkům, které jsem obdržel 26.3. se v SERP vyskytuje odkaz na ebay forum.
Z letmého prohlédnutí domovského webu BUYPAYMENTS.COM, kde nejsou, kromě jakéhosi Toll Free čísla, žádné kontaktní údaje, a v souvislosti s tím, s jakými obory je společnost výsledky vyhledávání v googlu dávána dohromady jsem usoudil, že se někde stala chyba.

Následoval telefon na 272 771 111 – Autorizační středisko GPE, s.r.o., kde jsem dal pokyn k okamžitému zablokování karty s podezřením na její možné zneužití. Karta byla zablokována. Následující den jsem zašel na pobočku GE Money a.s., kde jsem se snažil zjistit více o provedené transakci. Výsledek byl v podstatě nijaký, kromě podepsané žádosti o novou internetovou platební kartu. Ten dolar jsem oželel s tím, že jsem debil a musím si dávat větší pozor.

Tím se dostávám zpět k dnešnímu ránu. První použití zcela nové platební karty, zadání čísla, jména, data platnosti a CVC2 do administračního rozhraní PAYPAL a – pochybná transakce v nezaúčtovaných platbách. Dám krk na to, že po zaúčtování uvidím v provedených platbách platbu $1 na účet BUYPAYMENTS.COM.

A co teď s tím?