Archive for the ‘分享’ category

Open the browser, and here comes the computing power

七月 21st, 2010

This is really an awesome idea. Open the browser, and here comes the computing power. Imagine that you can open the browser and rent 10 machines, get everything done on them. Deployment? Software installing? No, the only thing you need is a browser.

The web-site of the project: http://stackvm.com/

PO檔自動繁簡轉換程式

四月 28th, 2010

最近在更新我的網站Now.in,最麻煩的一項工作就是國際化,通常我都是先以英文寫網頁,接著用TurboGears2的i18n功能將字串訊息取出,而我的GUI程式的i18n流程也差不多,都是先寫英文,翻成繁體中文,其中一個最腦人的過程,就是把翻好的繁體中文po檔裡的字串剪下貼上到google翻譯將它變成簡體中文再貼到簡體中文的po檔裡,這些工作都是重覆性極高的機械性動作,在一開始句子還少時做還可以,當字詞越來越多,這就變成一件痛苦的工作,既然是高重覆性的工作,為什麼需要人力來做呢? 於是我就寫了一個小程式,可以自動把po檔的內容抓出來丟到google翻譯去,把結果寫到另一個po檔中

# -*- coding: utf8 -*-
'''
Created on 2010/4/27
 
@author: Victor-mortal
'''
 
import os
import sys
import urllib
import json
import logging
import optparse
import codecs
import htmllib
 
log = logging.getLogger(__name__)
 
def unescape(s):
    p = htmllib.HTMLParser(None)
    p.save_bgn()
    p.feed(s)
    return p.save_end()
 
def translate(text, sourceLanguage, destLanguage):
    """Translate a text
 
    @param text: text to translate
    @param sourceLanguage: the language original text is in
    @param destLanguage: language to translate to
    """
    log.info('Translate %s from %s to %s', text, sourceLanguage, destLanguage)
    query = dict(v='1.0',
                 q=text.encode('utf8'),
                 langpair='%s|%s' % (sourceLanguage, destLanguage))
    file = urllib.urlopen(
        'http://ajax.googleapis.com/ajax/services/language/translate',
        data=urllib.urlencode(query)
    )
    result = file.read()
    file.close()
    jsonResult = json.loads(result)
    if not jsonResult['responseData']:
        return None
    return unescape(jsonResult['responseData']['translatedText'])
 
def main():
    logging.basicConfig(level=logging.INFO)
 
    parser = optparse.OptionParser(
        usage="usage: %prog sourcePoFile destPoFile sourceLanguage destLanguage"
    )
    (_, args) = parser.parse_args()
 
    sourceFilePath = args[0]
    destFilePath = args[1]
    sourceLang = args[2]
    destLang = args[3]
 
    log.info('Translate %s (in %s) to %s (in %s)',
             sourceFilePath, sourceLang, destFilePath, destLang) 
 
    result = []
    sourceFile = codecs.open(sourceFilePath, 'rt', encoding='utf8')
    for line in sourceFile.readlines():
        if line.startswith('msgstr'):
            _, msg = line.split(' ', 1)
            msg = msg.strip()
            msg = msg[1:-1]
            translatedMsg = translate(msg, sourceLang, destLang)
            if not translatedMsg:
                translatedMsg = msg
            result.append(('msgstr "%s"\n' % translatedMsg))
        else:
            result.append(line)
    sourceFile.close()
 
    destFile = codecs.open(destFilePath, 'wt', encoding='utf8')
    destFile.writelines(result)
    destFile.close()
 
if __name__ == '__main__':
    main()

使用方法很簡單

python po_translate.py 來源po檔 目的po檔 來源語言 目的語言

而語言的代碼,在Google translate的API文件中有寫,事實上它能做的不只有繁簡轉換,要翻成其它語言也可以,只是如果你能接受那品質的話

Memory efficient Python with bytearray

四月 22nd, 2010

The story

I was developing an audio broadcasting server.  I wrote the server with Twisted.  It works fine, but there is still a big problem to solve: the memory usage.  My audio broadcasting server use memory so much.  You can see it from the following figure.

As you see, the memory usage goes up like crazy when there are more listeners on the line.  It is almost an exponential growth. And it doesn’t make sense why it takes so much memory.  Then I started to find the reason of memory overuse.  At first, I thought it might be some memory leaks from the C-modules of Twisted or other third-party packages.  But it is not reasonable, if it is memory leaking, why there is no relative raising of memory usage at all peaks of radios/listeners?

Surprising result from guppy

I inspected the memory usage detail with guppy, and get a surprising result:


Partition of a set of 116280 objects. Total size = 9552004 bytes.
 Index  Count   %     Size   % Cumulative  % Type
  0  52874  45  4505404  47   4505404  47 str
  1   5927   5  2231096  23   6736500  71 dict
  2  29215  25  1099676  12   7836176  82 tuple
  3   7503   6   510204   5   8346380  87 types.CodeType
  4   7625   7   427000   4   8773380  92 function
  5    672   1   292968   3   9066348  95 type
  6    866   1    82176   1   9148524  96 list
  7   1796   2    71840   1   9220364  97 __builtin__.weakref
  8   1140   1    41040   0   9261404  97 __builtin__.wrapper_descriptor
  9   2603   2    31236   0   9292640  97 int

Even the RSS reported by ps is almost 100MB, there is still little memory actually is used by Python objects.  I then considered another reason: the Fragmentation.

Fragmentation

I was not sure at first, I also didn’t do memory leak detecting on my server.  I am just guessing.  I reviewed the design of server.   Following class is the core class of the design.

class AudioStream(object):
    """Audio stream
 
    """
 
    def __init__(self, memoryLimit=128*1024):
        """
 
        @param memoryLimit: limit of memory usage in bytes
        """
        # limit of memory usage
        self.memoryLimit = memoryLimit
        # offset of audio stream (how many chunks)
        self.offset = 0
        # queue for audio data chunk
        self.chunks = []
        # total bytes of chunk in queue
        self.totalSize = 0
 
    def write(self, chunk):
        """Write audio data to audio stream
 
        @param chunk: audio data chunk to write
        """
        # append chunk to queue
        self.chunks.append(chunk)
        self.totalSize += len(chunk)
 
        # check the usage of memory, if exceeded, pop chunks
        while self.totalSize > self.memoryLimit:
            poppedSize = len(self.chunks.pop(0))
            self.totalSize -= poppedSize
            self.offset += 1
            log.debug('AudioStream pop chunk %d, remaining size %d, offset %d',
                poppedSize, self.totalSize, self.offset)

It is a simple idea: every radio has its own buffer: a list of string, and when a listener needs more data, just pick up a chunk and send it to peer.  A list of string?  That might be the reason of overuse of memory, I wondered.  And I tried to understand how Python manages memory.  I found the article Improving Python’s Memory Allocator.   Then I understand how it works.  It’s not difficult,  every object smaller than 256 bytes will be allocated in the memory pool,  otherwise it will be allocated with malloc.  Then I can imagine what happened behind the scene.  The chunks are not in fixed size,  their size might be 200~300 bytes to 1xxx bytes.  The list of chunks is limited in a fixed size,  when the size of total chunks is too big,  it just pops some old chunks out.  Here is the key point of the reason of fragmentation.  You can imagine:

  1. A chunk with 987 bytes occupies a piece of memory at 0×000123
  2. When it is no longer needed, it was freed, then there is a free memory chunk at 0×000123 with 987 bytes.
  3. Here comes another memory allocation request with size 768,  malloc founds the free chunk at 0×000123, it just occupies it and return
  4. Here is the fragment!  987 – 768 = 219, we got a small chunk of free memory, it is too small and difficult to be used

This thing happened again, again and again during the server is serving, then there will be more and more fragments !  I finally know the reason of overuse of memory.  Then here comes another question: how to fix it?  List of string is an easy way to store buffering chunks,  but it makes fragments.  I then wondered a Python C-module with memory chunk allocation and accessing function might be a good idea.

The final solution: bytearray

I started to write my memory chunk allocation C-module. But when I am doing it, I found there is a better solution just fits what I need: the bytearray.  I found it in the CPython source code.   It is a single memory chunk, you can change its size, it might be reallocated.  But if you don’t change its length, it is always same memory buffer.  At first, I was curious, why I can’t find anything for bytearray in Python2.6 documents? I then noticed it is a back-port from Python3, that’s why there is no document for it.  Okay, now let’s see the better solution with bytearray:

class AudioStream(object):
    """Audio stream
 
    """
 
    def __init__(self, size=1024, count=128):
        """
 
        The bytes is a big memory chunk, it buffers all incoming audio data.
        There are blocks in the memory chunk, they are the basic unit to send to
        peer. 
 
        <-------------- Memory chunk ------------------>
        <--Block1--><--Block2--><--Block3--><--Block4-->
        ^          ^          ^          ^
        L1         L2         L3         L4
 
        We map blocks to the real audio stream
 
        <------------------ Audio Stream -------------->  ---> time goes
        <--Block3--><--Block4--><--Block1--><--Block2-->
 
                          Map to
 
        <-------------- Memory chunk ------------------>
        <--Block1--><--Block2--><--Block3--><--Block4-->        
 
        Every listener got their offset of whole audio stream, so that we can
        know which block he got.
 
        ------------<------------------ Audio Stream --------------> --->
                    <--Block3--><--Block4--><--Block1--><--Block2-->
        ^
        L5
 
        When there is a listener point to a out of buffer window place, we
        should move the pointer to the first current block.
 
        ------------<------------------ Audio Stream --------------> --->
                    <--Block3--><--Block4--><--Block1--><--Block2-->
                    ^
                    L5 
 
        @param size: size of block
        @param count: count of blocks
        """
        self._size = size
        self._count = count
        self._bufferSize = size*count
 
        # offset of begin of buffer window in audio stream
        self._offset = 0
        # bytes array
        self._bytes = bytearray(self.bufferSize)
        # small chunks, they are not big enough to fit a block
        self._pieces = []
        # total size of pieces
        self._pieceSize = 0
 
    def _getSize(self):
        return self._size
    size = property(_getSize)
 
    def _getCount(self):
        return self._count
    count = property(_getCount)
 
    def _getOffset(self):
        return self._offset
    offset = property(_getOffset)
 
    def _getBufferSize(self):
        return self._bufferSize
    bufferSize = property(_getBufferSize)
 
    def write(self, chunk):
        """Write audio data to audio stream
 
        @param chunk: audio data chunk to write
        """
        # append chunk to pieces
        self._pieces.append(chunk)
        self._pieceSize += len(chunk)
 
        while self._pieceSize >= self.size:
            total = ''.join(self._pieces)
            block = total[:self.size]
            # there is still some remain piece
            if self._pieceSize - self.size > 0:
                self._pieces = [total[self.size:]]
                self._pieceSize = len(self._pieces[0])
            else:
                self._pieces = []
                self._pieceSize = 0
 
            # write the block to buffer
            begin = self.offset % self.bufferSize
            oldSize = len(self._bytes)
            self._bytes[begin:begin+self.size] = block
            assert len(self._bytes) == oldSize, "buffer size is changed"
 
            self._offset += len(block)
 
    def read(self, offset):
        """Read a block from audio stream
 
        @param offset: offset to read block
        @return: (block, new offset)
        """
        begin = offset % self.bufferSize
        assert begin >= 0
        assert begin < self.bufferSize
        block = str(self._bytes[begin:begin+self.size])
        offset += self.size
        return block, offset


With new design, there are no more allocations and deallocations.  That saves a huge mount of memory.  Here is the memory usage figure with new design:

As you can see, we have almost 800 listeners on line, and the memory usage is still low and stable.  The original server uses over 100MB even with only 6x listeners on the line.  That’s huge difference.

如何評估比較程式語言

一月 8th, 2010

有人提到以過去的觀點來看現在的PHP是不公平的,確實我有好一陣子沒有碰PHP,對於新版的PHP並不瞭解,因此我花了一些時間檢視新的PHP規格,的確新版的PHP遠比我預料的進步許多,很多之前提到的問題有所改善,我承認上一篇文章說PHP很爛是在發洩過去對於PHP的種種不滿,有人認為程式語言沒有好壞,全部都事在人為,而我認為程式語言的好壞有主觀也有客觀的部份,當你討厭或喜歡一個程式語言一定有某些原因,但就客觀的來看語言的設計來講,PHP在早期真的是爛得一榻糊塗,是公認的爛,但是在當時少有選擇,能選的工具不多,就只有PHP,在累積夠久的不滿後就會一次暴發開來,對於現在的PHP5.3還有未來的PHP6而言,他已經跳離了以前的單純語言設計上的爛,往更好的方向前進,我能說PHP的壞話少了很多,因為當語言層面的問題大部份都解決了,接著就是哲學和個人喜好的問題了,對與目前和新版的PHP的誤解在這邊說聲抱歉

所以這篇我想說的,怎樣看客觀地評估一款語言的好壞,還有主觀地評估好與壞,很多人說程式語言沒有好與壞,只有適合和不適合,基本上我不認同這樣的說法,如果說兩種差別很大用途不同的語言拿來一起比較就很奇怪,但是如果是性質接近的語言都符合你需求,就可以做好壞的比較,不然你要怎麼做選擇? 就如同我們買車子好了,你的目的是載貨,買的自然是卡車、貨車,但是如果是轎車呢? 就算是卡車也有選擇的,程式語言也一樣,目前大部份人所見到的程式語言,都是所謂的"通用目的"語言,也就是說這樣的語言沒有預設任何用途,基本上他可以拿來做任何用途,很多人因為不知道要從何比較起,所以都說程式語言沒有好壞之分,只有適合和不適合,如果有一堆工具都適合,既然沒有好壞之分,那你又該如何做出進一步的評估與選擇? 適不適合不就是透過比較而來的嗎? 不比較怎麼知道適不適合? 這不是自相矛盾嗎? 只靠喜好嗎? 閉著眼睛亂選? 大家都知道車子我們可以比較它的馬力、耗油、安全評等,但是大多數人不知道程式語言該比較些什麼,而我今天所要說的,就是程式語言該拿什麼來比較

» Read more: 如何評估比較程式語言

以前的PHP有很多缺陷

一月 6th, 2010

有人在plurk上PO了一篇文章的連結,PHP 開發迷思 (三) – PHP 很糟糕?,因為我不認同那樣的看法,所以我回覆說php很爛,當你說一個語言很爛時,就要有心理準備有人準備要跟你戰了,果然有人不認同我的說法,當然任何人都可以不認同我所說的,而且好和爛是很主觀的,同時也是是相對的,但是我所說的是有根據的,說php爛不是我一個人的說法,而是已經被說到爛掉的說法,很多比我有經驗多的網頁程式設計師都異口同聲的說PHP很爛,為了解釋為什麼我認為PHP很爛(我在本文指的爛是指語言設計上的眾多嚴重缺陷),我寫了這篇文章

更新:

我承認這篇寫得有點偏激,也是以前的觀點,也是在發洩以前對PHP的不滿,我沒有寫較新的PHP,所以我收回PHP很爛,改成以前的PHP有很多缺陷,我想表達的是一款語言的很多缺陷,而且是在以前的缺陷,現在PHP確實有改進很多,所以我寫了一篇 如何評估比較程式語言

另外我想表達的一件事是,當有人說你用的程式語言有問題時,為什麼一定要這麼抓狂呢? 如果一個程式語言它的缺陷沒有人罵,大家都愛語言如命,那麼語言的開發者或團隊要如何知道這語言要改進什麼呢? PHP有很多缺陷是事實,然而說出來很多人可能就不高興,然而我選擇用較激烈的字眼是因為他改進實在太慢了,我們可以看到以前的Magic quote、unicode問題等等,至今都仍未解決,要php6才會解決,這些問題不是只有我覺得很糟,而是我發現很多人都跟我一樣覺得這太差了,我每次罵PHP都真的很希望他在下一個版本就把這些鳥問題解決掉,但以我之前的經驗它都讓我失望,所以我怨念很深,這篇文章寫起來也特別偏激,但我想表達的是,我說PHP爛某種程度是希望他變好,那你可能會問,我為什麼不說Python爛,然後哪裡爛,很簡單的原因是我太喜歡Python,當你很喜歡一個東西時你是看不見這東西的缺點,如果有人說Python爛,我覺得很好,我想知道他有哪些缺陷,是我沒看到的

除此之外,對於初學者來說,PHP的低門檻讓他成為吸引新手的蜜罐,而很多人都只知道PHP可以寫網頁,但是不知道其實所有程式語言都能寫網頁,我希望透過罵PHP也能讓更多人知道其實還有更多選擇,但其實這會讓人覺得反感,我在這背後目的是希望其它語言能夠有更多人使用,有競爭才有進步,而對於國內大部份人都只用PHP在刻網頁我也覺得很失望,我同時也希望讓大家知道其實網頁的技術現在已經很先進了,很少有人使用框架等次世代的網頁技術,所以有興趣也可以看一些較新的技術,而不是土法煉鋼

» Read more: 以前的PHP有很多缺陷

Now.in 網路廣播平台 Beta!

十一月 8th, 2009

在我大一時,我偶然聽到PTT上別人架的網路電台,當時我就覺得很有趣,感覺很棒,當時我就在想,如果下班回家,一開電腦就有各種電台可以聽,應該相當不錯,但是網路電台不是人人架的起的,需要有的伺服器,需要有頻寬,需要有架站的知識,對一般人而言是遙不可及的,為此,我就想如果我能提供一個平台,讓任何人都能輕易地開設網路電台,會是一件相當不錯的事,於是,動心起念,空想成不了事,我就開始尋找適何的技術,試過了不少東西,前陣子終於可以上線了,不過我近來都很忙,一直都還沒把它推上線,到今天,我決定先以BETA版上線

Now.in 網路廣播平台

如何成為DJ?

在我的平台要要成為DJ並開設一個網路電台很簡單,只要先到

註冊頁面

去填寫基本資料,接著應該會收到一封啟動帳號的信,然後點擊啟動連結,啟動你的帳號,接著下載我寫的專門用來廣播用的軟體Mr. DJ

下載Mr. DJ

下載完成後解壓縮,執行mrdj.exe後輸入帳號密碼,就可以開始廣播了,你的電台頁面,會是在

http://now.in/radio/你的帳號

疑難排解

目前因為在beta階段,所以可能會有些bug和無預警停機的可能,在此先說聲抱歉,目前已知問題有

  • 收不到認證信

不知道是會被當做垃圾信還怎樣,我發現有些信箱收不到認證信,我自己用gmail是可以收到的,如果你沒辦法收到認證信,先在垃圾郵件信箱裡找找,如果找不到,請以申請時的信箱來信以下信箱

並註名說需要啟動now.in的帳號,我會依照你的信箱找到你的帳號用gmail手動發一個認證信給你

  • Mr. DJ無法啟動 遇到 "Error loading Python DLL: python26.dll (error code 14001)" 錯誤

如果你遇到這個錯誤,八成是少了VC9的runtime所引起的,請下載

Microsoft Visual C++ 2008 Redistributable Package

並安裝後再執行應該就可以解決

其它問題與意見

當你遇到其它問題或意見時,歡迎來信

PCHome商店街與商店街的店家們,你們是詐騙集團的幫兇

十月 23rd, 2009

前陣子我才寫了一篇到底是誰賣了你的購物資料,到了今天,詐騙的事件有增無減,PCHome和PCHome的店家們完全一點反省、檢討與改進都沒有,跟以往一樣,把責任全推給消費者,今天,我要戳破他們的謊言,這一切是因為我看到了一篇關於PCHome詐騙事件的報導,PCHome如是說

個資又不是氣體,絕不會從平台外洩出去。

來自 http://www.itis.tw/node/3282

那種無所謂還當笑話看的態度真的令人火冒三丈,說真的,資訊安全很難做到百分之一百,但是最起碼基本的努力與態度是該有的,請問PCHome那是什麼鬼態度? 你們到底又做了什麼樣的努力? 明明知道一直有詐騙事件不停的在PCHome平台上發生,居然還說得出這種鬼話,PCHome商店街的店家也是,反正一律推給消費者就對了,反正要證明到底是誰把資料流出去很困難,雖然難以證明,但數據會說話,我發現有越來越多人在PCHome購物最近接到詐騙電話,所以把我之前寫的小爬蟲拿出來在今天再跑一次,我再說明一次我爬蟲的規則,他會跑過所有店家的負評列表第一頁,因為負評的數量不多,所以大部份店家的負評應該都數量很少,最新一頁就包含了幾年的負評,而負評抓完後我會用程式過濾出有"詐騙"字眼的負評,但因為有部份是出貨太慢被消費者抱怨他們是不是遇到詐騙,所以再一次經過手動過濾,以下是最新抓到的結果

負評資料

2009-07-06 05:09:32 http://store.pchome.com.tw/topoffice/HM/eval.htm?evalType=B
我本來要寫優良的!
但是很不巧…我今天接到詐騙集團的電話!
他很清楚告知我買了什麼東西,金額和數量!
當然方式還是…一樣! 又說你付的方式 變成分期付款! 不處理會被扣很多錢!
我不知道是Pchome還是貴公司的問題!
購買你家的東西…客戶資料會被洩漏光光!
請其他人要小心此情況!

2009-10-16 03:10:20 http://store.pchome.com.tw/dashop/HM/eval.htm?evalType=B
個人資料外漏。自收貨來己三次受到詐騙電騷擾。
騷擾時,對方對於單價,出貨日,品項資料非常清楚。

2009-09-03 18:54:32 http://store.pchome.com.tw/dashop/HM/eval.htm?evalType=B
我於8/26訂購商品一項,但不到一個月就接到詐騙電話,為什麼所有的訂購資料詐騙集團可取得,我在Pchomeh的線上購物或商店街亦購買了許多東西,亦在其他網站購物,唯獨在貴店出狀況,請貴店注意買方的資料勿外漏,謝謝.

2009-09-17 20:57:59 http://store.pchome.com.tw/dashop/HM/eval.htm?evalType=B
我上個月買一顆電池, 今天就接到詐騙電話, 為何對方會知道詳細交易內容? 煩請加強你們的交易資料保密, 謝謝!

2009-08-13 03:10:23 http://store.pchome.com.tw/dashop/HM/eval.htm?evalType=B
商品品質:產品質量太差太粗糙,買回來一裝,把我上千元的手把控制器整個磨損!!
洞大小根本不對,難放入更難拔出!!太可怕了!!
貪圖東西便宜,到頭來卻是當垃圾丟了!!
而且還造成原來搖控器的損壞,最後實在是虧更大!!!
今晚還莫名其妙接到廠商打來說付款有問題,錢都從我信用卡裡扣了!還有啥問題?!!
麻煩廠商下次自行先查清楚,這年頭詐騙太多,沒事別亂打給顧客說款項有問題,害我差點報警!!

2009-10-17 03:10:59 http://store.pchome.com.tw/bigwoman/HM/eval.htm?evalType=B
商品品質,網路安全不足,客戶基本資料外洩,受詐騙集團搔擾,應加強保護客戶購物安全購物

2008-05-06 22:10:52 http://store.pchome.com.tw/sunlead/HM/eval.htm?evalType=B
出貨及產品都不錯.

可是:你們把客戶的資料洩漏出去了!詐騙集團已經用這些交易資料在行騙了,

請趕快設法補救!(用02-77238585的電話)

2009-09-02 14:45:01 http://store.pchome.com.tw/yuti/HM/eval.htm?evalType=B
接獲詐騙集團電話..嚴重懷疑pchome商店街系統洩漏個人資料
往後將會慎重考慮是否繼續在pchome商店街購物

2009-08-24 03:10:28 http://store.pchome.com.tw/mandyshop/HM/eval.htm?evalType=B
客服態度不錯,但我的定安資料卻外流了,
還遇到詐騙集團,整個不開心!

2009-07-10 11:54:21 http://store.pchome.com.tw/mandyshop/HM/eval.htm?evalType=B
今天(98.08.30)PM10:04接到大陸口音女子的詐騙電話,心

2009-09-01 03:10:13 http://store.pchome.com.tw/epnet/HM/eval.htm?evalType=B
商品是不錯用!但是已經購買一個多月了.竟還會接到詐騙電話!感受很差!!這是為什麼?請給個合理的理由!!謝謝!!

2009-09-20 21:37:11 http://store.pchome.com.tw/e2861996/HM/eval.htm?evalType=B
我跟你們 買牛肉幹乾這事! 為何詐騙集團會知道? 竟然被詐騙集團利用 打電話 給我來行騙!
我想請教! 我的個資為何從你那邊流出去?
我的地址!電話 交易項目 金額 信用卡公司,…都給詐騙集團知道了!
對我的安全有很大影響!
打電話給你們 卻是推的一甘二淨!!
超級不負責任!!

2009-09-19 03:10:41 http://store.pchome.com.tw/jklife/HM/eval.htm?evalType=B
商品出現兩次失效,裝上去毫無反應。放置一段時間再裝上又可使用。
一個月內接到兩次詐騙電話,一打來就清楚說我在幾月幾號買了這項產品刷了多少錢…….
心情很差,不知道還會接到幾次…

2007-11-13 11:10:38 http://store.pchome.com.tw/abcd1119/HM/eval.htm?evalType=B
我這才發現原來我接到的那通電話也是詐騙集團打來的!!
本人在此鄭重表達對貴公司以及PChome商店街的嚴重不滿與抗議!!
我們都是基於信任貴司與PChome商店街交易平台的安全性才在此消費,
現在我們的手機以及其他個人資料全被盜取,
請問貴公司以及PChome商店街要怎麼負責與解決??!

2007-11-12 14:55:15 http://store.pchome.com.tw/abcd1119/HM/eval.htm?evalType=B
你們公司把我的交易資料外洩,害詐騙集團打來騷擾我,
他們明確說出我在何時,跟你們購買了這組電蚊拍,還問我使用狀況
接著騙我說我的交易紀錄出問題,說你們的交易平台異常,還我一次付清的方式變成分期,
要我去ATM取得交易明細表,還有上面的經辦證號與時間,才能做取消分期,
後來我去查證才知道是詐騙,

請大家要小心在這家商店購物時的資料外洩問題!!!!

2009-09-29 03:10:11 http://store.pchome.com.tw/elive/HM/eval.htm?evalType=B
上個禮拜收到詐騙集團的電話 大陸口音 說扣款有問題 要退錢給我之類的… 他們說的姓名 產品 價錢竟然都正確… 強烈懷疑你們資料有外露!! 所以給你負評

2009-10-06 09:14:46 http://store.pchome.com.tw/elive/HM/eval.htm?evalType=B
上個禮拜收到詐騙集團的電話 大陸口音 說扣款有問題 要退錢給我之類的… 他們說的姓名 產品 價錢竟然都正確… 強烈懷疑你們資料有外漏!! 所以給你負評

謝謝您的回覆~ 但我不知道要相信誰或相信哪種說法 "攔截email" 聽起來已經很扯… 所以並沒有改變我對你們評價的理由… 況且這會不會是只有你們這家跟PCHome才會發生這樣的意外呢?? 別家都不會呢? 我不知道… 我只知道 我過去在PCHome消費很多次 從來沒有過這樣的事情… 你們是第一次… 我只是針對發生在我身上的例子告訴大家跟你們交易有個資外洩的疑慮 而且確實已經發生了!! 要大家跟你們交易時三思 這就是評鑑系統的目地 就是要反應事實 請見諒

2009-10-06 20:17:22 http://store.pchome.com.tw/yi_cheng/HM/eval.htm?evalType=B
自從買了貴店家的產品,即已接到兩通「詐騙電話」!
因為是經由pchome及貴店家購買,所以請你們都要對這件事負責。
(如果不是你們負責解決問題,難道要由我們顧客解決嗎?)

2009-09-21 22:01:38 http://store.pchome.com.tw/tge505/HM/eval.htm?evalType=B
今天接到所謂客服來電,表明了解此次購物,但說到後來就成了詐騙電話,說我會被每月扣款…。我想你們系統也太差了,個資馬上外洩。

2008-01-06 23:51:55 http://store.pchome.com.tw/inenjoy/HM/eval.htm?evalType=B
該商家漠視消費者權益使客戶資料外洩導至接到詐騙電話,告知店家還回覆網路世界無孔不入.很抱歉.讓大家權益受損.只要大家小心別上當.謝謝。如果真的詐騙成功不知道該找誰,跟別的店家買比較安全。

2007-12-27 20:59:34 http://store.pchome.com.tw/inenjoy/HM/eval.htm?evalType=B
物美價廉,值得推薦
客戶資料外洩,遭詐騙集團call in,資安須加強。
2009-10-19 09:46:11 http://store.pchome.com.tw/egoton/HM/eval.htm?evalType=B
客服態度
過程中客戶資訊外洩,被詐騙集團利用,已反應店家至今尚未得到PChome Online 的任何回應,顯現經營者並不重視消費者的敷衍心態.

2009-03-19 14:23:27 http://store.pchome.com.tw/ezbon/HM/eval.htm?evalType=B
貨收到後第二天接到一通詐騙電話,被我識破後還被那女生罵髒話))&^%&*^$*&()….貴公司的客戶資料應該加強保護.

2009-08-24 03:10:24 http://store.pchome.com.tw/pc123456/HM/eval.htm?evalType=B
我今天收到詐騙電話

對方聲稱 我於貴商店購買的耳機付款有問題.
會造成連續扣款.

我想了解貴商店的資料是如何洩漏出去的?

2009-08-25 17:00:24 http://store.pchome.com.tw/pc123456/HM/eval.htm?evalType=B
我接到詐騙電話 聲稱我於貴商店購買的 "JABRA BT-530~全新遠寬公司貨~ 原廠[一對二]A2DP 抗燥音藍牙耳機BT530″ 商品,誤辦理為分期.要求我要操作 ATM.

我於兩週前通知貴商店,並請貴商店了解資料是如何外洩的.可貴商店置之不理.

貴商店漠視此一資料外洩事件的態度令人感到匪夷所思.

貴商店既然沒有誠意想改善與了解此個人資料外洩的問題.我也不會再貴商店繼續購物.以免個人資料繼續外流.

2009-10-01 03:10:15 http://store.pchome.com.tw/kimo_battery/HM/eval.htm?evalType=B
請注意帳號安全性 已下評價並非本人給出
評價等級: 優良 (2009/10/01 03:10:15)
並不會在半夜三點給評價 請注意
也有接到客服來電 告知刷卡問題有誤 還須繳11期198元的費用
請協助處理 這是詐騙吧~~~~~~~

2009-10-01 18:56:05 http://store.pchome.com.tw/kkto68/HM/eval.htm?evalType=B
我與貴司的交易資料, 不知是否有外洩, 今有一名女士, 宣稱是貴司人員, 說貴司因內部作業疏失, 把我變成長期會員, 要我重新提供刷卡資料, 以便代為取消.
請詳查是否真為貴司所為, 或為詐騙.謝謝:)
來電電話顯示為: 02-22830227

2009-10-07 18:49:45 http://store.pchome.com.tw/shuhut/HM/eval.htm?evalType=B
為什麼我向你們購買的資料會讓詐騙集團知道呢?搞什麼?為什麼其它店家不會呢?

2009-10-06 01:04:18 http://store.pchome.com.tw/shuhut/HM/eval.htm?evalType=B
將客戶資料洩漏給詐騙集團,我以後不會再跟你買東西了

2009-10-02 18:31:35 http://store.pchome.com.tw/maggie/HM/eval.htm?evalType=B
物品使用後有問題,提問請求協助快半個月了,都沒回應,售後服務極待加強.且今日收到詐騙電話,這是我有pchome購物以來第一次接到詐騙電話,貴公司的對客戶資料的保密也待加強.

2008-08-23 02:04:10 http://store.pchome.com.tw/sunpro/HM/eval.htm?evalType=B
客服態度
差勁的店家,在PC home商店街使用信用卡刷卡購物,理論上應該含稅,可是貨品收到卻沒有發票,寫email詢問,居然推說比照網拍特價,所以價格是未稅價,雖然金額不高 但是這種逃漏稅的行為令人不恥。另外網拍資料與商店街資料分不清,而且資料外洩,使買家接到詐騙集團以拍賣場的賣家的名號打來的詐騙電話,實在該好好檢討

2009-09-07 01:57:36 http://store.pchome.com.tw/photo_buy/HM/eval.htm?evalType=B
9/6約晚上8點多,一個自稱PCHOME人員說我在上述訂單重複扣款了900,之後他也連絡自稱郵局人員幫我處理這件事,我的個人資料對方完全寥落指掌,當下不疑有他操作了ATM,結果害我損失了13萬多!

以上我已經另行報警處理…
為什麼我的個人資料會外洩!?
我這筆被詐騙的損失要怎麼辦!?
你們這邊要怎麼跟我解釋!?
(以上同樣的內容也另行傳一份給PCHOME客服)

2009-10-03 18:02:32 http://store.pchome.com.tw/tw1111/HM/eval.htm?evalType=B
於 pchome 商店街買東西,隔沒多久就接到詐騙電話,金額與時間清清楚楚,
不管是誰洩漏資料,讓人感覺非常差勁,應該不會有下次購買。

2009-10-11 03:11:47 http://store.pchome.com.tw/life_store/HM/eval.htm?evalType=B
我自從收到商品之後就經常被各種大陸口音詐騙電話騷擾,
說是什麼當初匯款有問題,講一堆奇奇怪怪的理由,
甚至連身分證字號也被他們知道,
到底會員資料的安全怎麼做的?
不要告訴我這真的是那家公司打來的,
我以前買其他pchome的東西都沒事,
難得用到商店街就發生資料外洩,
還是說這家專賣泡綿且將顧客資料轉給詐騙集團?客服態

2009-10-15 22:34:26 http://store.pchome.com.tw/life_store/HM/eval.htm?evalType=B
我自從收到商品之後就經常被各種大陸口音詐騙電話騷擾,
說是什麼當初匯款有問題,講一堆奇奇怪怪的理由,
甚至連身分證字號也被他們知道,
到底會員資料的安全怎麼做的?
不要告訴我這真的是那家公司打來的,
我以前買其他pchome的東西都沒事,
難得用到商店街就發生資料外洩

2009-10-11 03:11:05 http://store.pchome.com.tw/yan0121/HM/eval.htm?evalType=B
購買東西約半個多月後即接到詐騙集團的電話,對買的物品與價格及時間點完全清晰一致;這是否意味著我的資訊被洩露出去了…………那以後還有誰敢上PChome購物.

2009-10-14 03:12:28 http://store.pchome.com.tw/justmall/HM/eval.htm?evalType=B
商品品質:踏板螺絲易鬆,要時常去重新鎖緊,請加強
近日接獲詐騙集團電話,本訂單及刷卡資料全部外洩,請pchome及晨昌健康科技行銷有限公司加強控管,必要時將報警處理。

2009-10-18 03:11:02 http://store.pchome.com.tw/stationery/HM/eval.htm?evalType=B
我對東西沒有疑問 可是拍了妳們的東西之後 一直接到詐騙電話 對我交易的金額項目一清二楚 請問為什麼?

數據會說話

PCHome和那些商家或許又會說,那都是使用者自己電腦中木馬之類的流出去的,我說,鬼扯! 請看統計出來的分佈圖

pc_home_sucks

如果說是使用者這邊流出去的,那這些全部集中在9月到10月間突然大量暴出來的詐騙事件又是怎麼回事? 你要說這些使用者都剛好中了他們的木馬,而又剛好最近在PCHome商店街買過東西嗎? 請別忘了,出現在這些負評裡的都只是冰山一角,看到一筆負評可能代表有n個人接過詐騙電話,就像你在你家看到一隻老鼠,就表示你家可能有n隻老鼠的道理是一樣的,只是不是每個人都特地留下負評,時間久了可能就忘了,因此在9月到10月間在PCHome商店街購物接到詐騙電話並且個人資料外流的數量遠遠超過這些資料所顯示的

想像一下,你是詐騙集團,中了你木馬的人近有在線上購物的機率有多少? 假設是1%好了,這表示,如果有1000人接到詐騙電話,那麼實際上中詐騙集團木馬的人就是100倍,你得讓十萬人的電腦都中你的木馬,並且從中過濾並找到最近有在線上購物的人,才有辦法拿到1000人的資料,詐騙集團大概是腦子壞去了才會這麼做,PCHome和店家們所說的,資料都是從使用者那端流出去的,根本就是胡扯!

投資成本最低,報酬率最高的就是 : 店家

如我上面所說的,詐騙集團要是蠢到投資在零散的使用者個人上,確實有可能可以拿到資料,但是投資報酬率低得可憐,大概只有像PCHome和PCHome商店街的店家們才會笨到這麼做,換做是我,當然是選擇投資抱酬率最高的那個攻擊,那投資報酬率最高的是哪一個環節呢? 答案當然是店家,基本上店家的電腦就跟使用者的一樣容易被入侵,但是比起入侵一堆使用者,只要入侵一個賣家,就能拿到一堆個資,哪個蠢蛋會選擇投資抱酬率低到不行的做法? 可悲的是他們都死不認錯,那請問這大量突然在同一個平台,同樣幾家少數店家暴發的詐騙事件又該如何解釋? 當然只有平台或店家被入侵最為何理,但比起店家,平台較難以入侵,店家的安全知識接近0,隨便寄幾封釣魚的信件他們只要有幾個上當就有用不完的資料!

結論

結論就是,PCHome商店街與商店街的店家是詐騙集團的幫凶,死不承認問題出在自己,把責任全推給消費者,然後就這樣任憑資料大量的流出去,讓消費者成為受害者,希望台灣的法律可以立法,讓這些將其它人資料流出去而使人受到損失的人或單位,也得付起一定的刑責,否則這些人都無所謂的樣子,還可以拿來說笑!!! 也不研究到底是哪裡、以什麼方式讓資料一而再,再而三的流出去

請大家告訴大家,抵制這些不負責任的平台與賣家,本文只要註明出處,歡迎轉載

夏天協奏曲 11月27日全省上映

九月 28th, 2009
夏天協奏曲DM

夏天協奏曲DM

夏天協奏曲 11月27日全省上映

官方部落格

An auto-retry recipe for Twisted.

九月 26th, 2009

You can find chinese version of this article here : Deferred應用的實例 : retry

For grabbing pages from websites with twisted, you can write this:

getPage("http://www.google.com").addCallback(printPage)

But what about the HTTP server is too busy to response? Your getPage fails. For reasons, you have to modify your program to retry once the getPage failed. So you might write a method like this:

getPageRetry(5, "http://www.google.com")

Well, it seems works fine, but how about you got some other operations to retry? connectToClient, getTime and so on. You have to write

connectToClientRetry(5, "example.com")
getTimeRetry(5, "timeserver.com")

You have to write retry-version version of every function that may fail. That’s not a good idea. Twisted provides a very beautiful ansyc callback object named Deferred. It looks like Chain-of-responsibility, but it can also handle errors well. With its beautiful design, I wrote a retry function that can warp all function return Deferred that might fail. That’s no need to modify any exists code of getPage to make it to retry automatically. Here is the recipe:

import logging  
 
from twisted.internet import defer  
 
log = logging.getLogger('retry')  
 
def retry(times, func, *args, **kwargs):
    """retry a defer function 
 
    @param times: how many times to retry
    @param func: defer function
    """
    errorList = []
    deferred = defer.Deferred()
    def run():
        log.info('Try %s(*%s, **%s)', func.__name__, args, kwargs)
        d = func(*args, **kwargs)
        d.addCallbacks(deferred.callback, error)
    def error(error):
        errorList.append(error)
        # Retry
        if len(errorList) < times:
            log.warn('Failed to try %s(*%s, **%s) %d times, retry...', func.__name__, args, kwargs, len(errorList))
            run()
        # Fail
        else:
            log.error('Failed to try %s(*%s, **%s) over %d times, stop', func.__name__, args, kwargs, len(errorList))
            deferred.errback(errorList)
    run()
    return deferred

Here you are! Now you can use it to make your operation to retry automatically!

from twisted.internet import reactor
from twisted.web.client import getPage  
 
def output(data):
    print 'output', data  
 
def error(error):
    print 'finall error', error  
 
d = retry(3, getPage, 'http://www.google2.com')
d.addCallbacks(output, error)  
 
d = retry(3, getPage, 'http://www.google.com')
d.addCallbacks(output, error)  
 
reactor.run()

到底是誰賣了你的購物資料

九月 24th, 2009

前些天,為了畢業專題,我上網在PCHome的DA量販買了一條USB 轉 RS232的線傳輸線,有趣的是,就在昨天,我接到了詐騙電話,他們很清楚我買了什麼東西,告訴我他們弄錯了帳款,變成了自動分期扣款,我用不屑的口吻說了一句"喔…",不知道是從我的口氣感到沒有希望還怎樣,通話過一陣子就斷了,這不是我第一次接到這樣的詐騙電話,每次我接到都覺得很火大,火大不是在於電話本身,而是賣家把我的資料洩漏出去,而更火大的是,通常都沒人想去追究到底是從哪洩漏出去的,每個環節都聲稱他們都有定期掃毒、更換密碼、他們的平台很安全,因為舉證困難,比起找到哪裡流出去的,把責任推給別人比較簡單,這讓我覺得相當火大,於是我就開始想,到底是誰把資料流出去的,做了一些研究和推論

大家都一樣火大

我相信,接到詐騙電話的人,發現自己資料被一清二楚地流出去時,都一樣火大,在評價上肯定不會有什麼好評,於是我找了DA量販的負評來看,果不其然,也有人抱怨接到了詐騙電話,時間也都很接近

評價等級:     待加強 (2009/09/17 20:57:59) (最新一筆)
評價意見:     我上個月買一顆電池, 今天就接到詐騙電話, 為何對方會知道詳細交易內容? 煩請加強你們的交易資料保密, 謝謝!

評價等級:      待加強 (2009/08/29 01:31:54) (最新一筆)
評價意見:     商品品質:產品質量太差太粗糙,買回來一裝,把我上千元的手把控制器整個磨損!! 洞大小根本不對,難放入更難拔出!!太可怕了!! 貪圖東西便宜,到頭來卻是當垃圾丟了!! 而且還造成原來搖控器的損壞,最後實在是虧更大!!! 今晚還莫名其妙接到廠商打來說付款有問題,錢都從我信用卡裡扣了!還有啥問題?!! 麻煩廠商下次自行先查清楚,這年頭詐騙太多,沒事別亂打給顧客說款項有問題,害我差點報警!!

光看這樣似乎是DA量販有意或無意的把資料流出去,但這麼想太過武斷,因為能接觸到個人資料的環節不少,我不清楚他們背後的流程怎麼跑,但是資料經過的環有不少,可能這些環節都會流出去,至於環節有哪些,從使用者的電腦、商家、物流、銀行等等,我們先一項一項來看

使用者

俗話說,懷疑別人前要先懷疑自己,通常,使用者的這一環節是最弱的,不管在安全知識等各方面,都是相當不足容易被侵入的,但是考慮到一個重點,其實就可以發現,資料從使用者這邊流出去的可能是有,但其實非常少,只要站在詐騙集團的立場來看就很清楚,問題就出在於成本,使用者用電腦的作業系統、環境都不相同,做為詐騙集團,如果要從使用者這裡取得資料,例如植入木馬,有如大海撈針一般,如何知道這使用者有在線上購物,並且能夠抓到他購物的資料? 當然也可以使用釣魚的手法寄假的登入頁面,只是比起店家的信箱,買家的資料較難取得,再者,同一個人可以被騙幾次? 所以,再笨的詐騙集團都知道,從使用者個體電腦取得資料一點都不划算,我有見過很多商家都這麼說:

店家回覆:      非常謝謝您的支持!針對此詐騙電話,pchome已做防護,詐騙資料是由客戶端所收到的購買回件做詐騙,並非商店街外洩,請更改您本身的密碼,以防詐騙集團入侵你的信箱!希望以後還能再為您服務喔!^^  (2009/09/22 09:50:34)

連結

像這之類的,根本是鬼扯! 詐騙集團監視你的信箱能撈到多少資料? 而你又能被騙幾次? 所以下次店家要推卸責任請想更好一點的理由

店家

店家的安全防護和知識等等,其實就和一般使用者沒兩樣,比起從使用者身上拿到資料,資料一次拿到都是一堆的,店家當然是最好的選擇,因為防護差又好騙,舉個例子,我可能只要寄封信謊稱自己是PCHome的工程師,近來很多人的電腦都被詐騙集團植入木馬,我們免費提供木馬清除程式,又或著釣魚(Phishing)的手法,把假的登入頁面,大量寄給商家,這之中肯定會有人上勾,只要有一個店家上勾,就有一票的資料可以詐騙,笨蛋才從使用者那邊盜那丁點資料,當然,店家內有內鬼,這也是有可能的,在我看來,店家可以說是最弱的環節但通常是死不承認又不認真面對找出漏資料的原因,讓資料一直漏,可以說是詐騙集團的最主要幫兇

平台

比起從店家那裡盜資料,要從平台上拿到資料所需要的門檻高了一些,但說高其實也不高,如果平台有漏洞的話,有心人士發現,往往會將資料全倒出來,然後賣給詐騙集團,可能一筆資料只值幾塊錢這樣,大家的購物資料就這樣被以賤價賣給詐騙集團,所以,如果發現收到詐騙電話的人資料遍佈整個平台,就極有可能是平台有洞被撈資料了

除了官方的平台,也很常見到賣家使用外面賣的轉帳資料登入系統,也就是轉帳完買家進入他們的系統登入買了什麼東西,多少錢,然後轉帳時間、金額等等,像是Yahoo!奇摩拍賣就有不少賣家使用那樣的系統,我相信像很可能有相當大比例的資料是從那些系統流出去的,因為那些系統安全性比起Y拍和PCHome等平台,可能大多都很差,畢竟可能是菜鳥寫出來的網站,或許簡單的SQL Injection就能撈出一堆資料來,誰有興趣的話,或許可以抓資料做做看詐騙負評和轉帳資料登入系統的正相關性,我猜應該會相當高

銀行

有趣的是,除了把責任推給使用者,也有店家把責任推給銀行

評價意見:      貨收到後第二天接到一通詐騙電話,被我識破後還被那女生罵髒話))&^%&*^$*&()….貴公司的客戶資料應該加強保護.

店家回覆:      您好:有看到您的評價意見了,現在資訊發達個人資料容易外漏,我本人若接到不明來電一定先詢問「怎麼會有我的電話號碼」,所以我們是非常厭惡不明電話的騷擾~~~我們緹悠樂活只專心致力於我們的本業,顧客的個人資料都是我們的珍藏絕不外漏,這點您絕對可以放心,我想在網路購物或任何的申請都需填寫個人資料,另外銀行或電信業者都可能盜取我們的個人資料外賣,我個人是很少留資料給他人,也常懷疑銀行或電信業者把我個人資料外瀉,甚至公家機關不法人員也有可能,太多太多的可能了,但我們向您保證您的資料絕不是從我們手中流出去的,如果您釋懷的話請給我們好一些些的評價吧!!  祝您有個美好的一天~~~  ^╴╴╴^  (2009/09/03 09:45:57)

連結

雖然這裡沒有提到有任何詐騙集團的手法,但通常都是說你買了xxx東西,多少錢,都一清二礎地跟你說,讓你取信他們確實是賣家,接著才開始誆你,如果說銀行把資料流出去,那銀行又是怎樣知道你買了什麼東西? 店家會把商品名稱讓銀行知道嗎?

98/ 09/ 04       刷卡消費       $169       –       xxx       網路家庭國際資

以我在DA量販刷卡的記錄,銀行並不會記錄你買了什麼東西,頂多像這樣知道你在PCHome花過錢,所以像這種推卸責任的理由一樣很弱,再者銀行是最重視安全的單位之一,比起隨便請工讀生來處理訂單的店家安全等級要高太多了,不檢討自己居然懷疑到銀行頭上蠻可笑的

物流

當然把東西交到客戶手上的就是物流,所以也是推卸責任的好目標,請問大家在收到東西時,有多少店家會蠢到把買什麼東西、多少錢直接就寫在包裝外面? 我確實遇過,這些店家大概一點隱私權的概念都沒有,但是非常少數,所以基本上包裝上是不該寫買了什麼東西的,接著問題就是,店家將商品交給物流業者時,商品到底是包好的,還是沒包好的? 以我自己去郵局寄東西給買家來看,我們都是把東西包好再交給物流的,有人把東西交給物流在由他們包裝嗎? 或許有,但是如果不是的話,把責任推給物流就說不過去,不過或許有些跟物流之間會有商品報值的資料,這樣一來的確也是有可能會外流

數據會說話

當然,上面這些光說,沒有數據其實也只是空打嘴砲,為了能夠更清楚的瞭解資料外流的情況,我花了一點時間寫了一個小爬蟲爬了PCHome商店街所有店家的負評第一頁,在那之中找到有"詐騙"字眼的負評,而我發現有些是商品太久沒來,買家抱怨他們是不是被詐騙的留言,為此我手動過濾了一下,挑出確實是有說接到詐騙電話的負評,以下是列表

DA 量販店

評價等級:      待加強 (2009/09/17 20:57:59) (最新一筆)
評價意見:     我上個月買一顆電池, 今天就接到詐騙電話, 為何對方會知道詳細交易內容? 煩請加強你們的交易資料保密, 謝謝!

評價等級:      待加強 (2009/08/29 01:31:54) (最新一筆)
評價意見:     商品品質:產品質量太差太粗糙,買回來一裝,把我上千元的手把控制器整個磨損!! 洞大小根本不對,難放入更難拔出!!太可怕了!! 貪圖東西便宜,到頭來卻是當垃圾丟了!! 而且還造成原來搖控器的損壞,最後實在是虧更大!!! 今晚還莫名其妙接到廠商打來說付款有問題,錢都從我信用卡裡扣了!還有啥問題?!! 麻煩廠商下次自行先查清楚,這年頭詐騙太多,沒事別亂打給顧客說款項有問題,害我差點報警!!

頂尖總務

評價等級:      待加強 (2009/07/06 05:09:32) (最新一筆)
評價意見:     我本來要寫優良的! 但是很不巧…我今天接到詐騙集團的電話! 他很清楚告知我買了什麼東西,金額和數量! 當然方式還是…一樣! 又說你付的方式 變成分期付款! 不處理會被扣很多錢! 我不知道是Pchome還是貴公司的問題! 購買你家的東西…客戶資料會被洩漏光光! 請其他人要小心此情況!
店家回覆:     您好~真抱歉,因為我們的資料都是留在pchome後台的,會通知pchome加強控管,也會更改我們的後台的帳密及加強電腦掃毒,以查明原因,謝謝您的通知,對於造成您的困擾,深感抱歉!!  (2009/07/06 08:23:30)

緹悠樂活館

評價等級:      待加強 (2009/09/02 14:45:01) (最新一筆)
評價意見:     接獲詐騙集團電話..嚴重懷疑pchome商店街系統洩漏個人資料往後將會慎重考慮是否繼續在pchome商店街購物謝謝
店家回覆:     您好:有看到您的評價意見了,現在資訊發達個人資料容易外漏,我本人若接到不明來電一定先詢問「怎麼會有我的電話號碼」,所以我們是非常厭惡不明電話的騷擾~~~我們緹悠樂活只專心致力於我們的本業,顧客的個人資料都是我們的珍藏絕不外漏,這點您絕對可以放心,我想在網路購物或任何的申請都需填寫個人資料,另外銀行或電信業者都可能盜取我們的個人資料外賣,我個人是很少留資料給他人,也常懷疑銀行或電信業者把我個人資料外瀉,甚至公家機關不法人員也有可能,太多太多的可能了,但我們向您保證您的資料絕不是從我們手中流出去的,如果您釋懷的話請給我們好一些些的評價吧!!  祝您有個美好的一天~~~  ^╴╴╴^  (2009/09/03 09:45:57)

╭☆°蔓蒂小舖。韓系、日系美型孕婦裝、娃娃裝、中大尺碼

評價等級:      優良 (2009/08/24 03:10:28)
店家回覆:     您真是一位超級好買家!非常感謝您的光臨╭☆°蔓蒂 小鋪。祝福您事事順心喔~  (2009/08/24 09:54:49)
評價等級:     待加強 (2009/09/01 05:05:00)
評價意見:     客服態度不錯,但我的定安資料卻外流了,還遇到詐騙集團,整個不開心!
店家回覆:     您好,我們在Pchome的這個平台,有使用動態密碼及定期更新密碼、掃毒,不過現在歹徒也越來越厲害,不知道他是怎麼竊取資料的,也有可能是您的電腦在上傳資料時被竊取的,建議您也掃毒一下唷,我們已經立刻更新我們的密碼、掃毒,謝謝您特地來信告知喔!同時我們也已經通知Pchome有此情形!提醒您,並沒有什麼ATM按錯變成分期付款,還會每月扣款,如接到可疑電話,請馬上掛斷!並打165報警!也可來信or來電跟我們確認喔  (2009/09/01 09:19:47)
評價等級:     待加強 (2009/09/01 05:07:04) (最新一筆)
評價意見:     客服態度
店家回覆:     很抱歉~讓您覺得不開心~我們也已經向Pchome反應此情形  (2009/09/01 09:21:59)

EP NET親子生活館

評價等級:     待加強 (2009/09/16 01:49:54) (最新一筆)
評價意見:     商品是不錯用!但是已經購買一個多月了.竟還會接到詐騙電話!感受很差!!這是為什麼?請給個合理的理由!!謝謝!!

好吃多國際食品

評價等級:     待加強 (2009/09/20 21:37:11) (最新一筆)
評價意見:     我跟你們 買牛肉幹乾這事! 為何詐騙集團會知道? 竟然被詐騙集團利用 打電話 給我來行騙! 我想請教! 我的個資為何從你那邊流出去? 我的地址!電話 交易項目 金額 信用卡公司,…都給詐騙集團知道了! 對我的安全有很大影響! 打電話給你們 卻是推的一甘二淨!! 超級不負責任!!
店家回覆:     非常的感恩PChome商店街在此特別提醒您,商店街的店家與PChome工作人員,均不會要求消費者至.提款機操作任何功能,請小心勿上當。如果接獲不明人士來信或來電,應立即撥打165防詐騙專線查詢或透過 PChome商店街客服中心 https://storessl.pchome.com.tw/adm/appeal.htm 查證。 PChome商店街與您一起努力維護網路交易安全!  (2009/09/20 22:10:11)

電氣男數位購物城

評價等級:      待加強 (2007/11/13 11:10:38) (最新一筆)
評價意見:     我這才發現原來我接到的那通電話也是詐騙集團打來的!! 本人在此鄭重表達對貴公司以及PChome商店街的嚴重不滿與抗議!! 我們都是基於信任貴司與PChome商店街交易平台的安全性才在此消費, 現在我們的手機以及其他個人資料全被盜取, 請問貴公司以及PChome商店街要怎麼負責與解決??!
店家回覆:     不好意思 我們已經將此情況反應給pchome了並通知警方處理 造成您的不便請見諒  (2007/11/14 12:09:14)

評價等級:      待加強 (2007/11/12 14:55:15) (最新一筆)
評價意見:     你們公司把我的交易資料外洩,害詐騙集團打來騷擾我, 他們明確說出我在何時,跟你們購買了這組電蚊拍,還問我使用狀況接著騙我說我的交易紀錄出問題,說你們的交易平台異常,還我一次付清的方式變成分期, 要我去ATM取得交易明細表,還有上面的經辦證號與時間,才能做取消分期, 後來我去查證才知道是詐騙, 請大家要小心在這家商店購物時的資料外洩問題!!!!
店家回覆:     我們已經將此情況回應給pchome及警方了 不好意思造成您的困擾 本館絕對不會打電話告知民眾要更改交易方式如有任何問題請來電本館進行確認的動作  (2007/11/12 18:27:51)

美麗家電器購物網

評價等級:      待加強 (2009/09/21 22:01:38) (最新一筆)
評價意見:     今天接到所謂客服來電,表明了解此次購物,但說到後來就成了詐騙電話,說我會被每月扣款…。我想你們系統也太差了,個資馬上外洩。
店家回覆:     非常謝謝您的支持!針對此詐騙電話,pchome已做防護,詐騙資料是由客戶端所收到的購買回件做詐騙,並非商店街外洩,請更改您本身的密碼,以防詐騙集團入侵你的信箱!希望以後還能再為您服務喔!^^  (2009/09/22 09:50:34)

電器王國

評價等級:      待加強 (2008/01/06 23:51:55) (最新一筆)
評價意見:     該商家漠視消費者權益使客戶資料外洩導至接到詐騙電話,告知店家還回覆網路世界無孔不入.很抱歉.讓大家權益受損.只要大家小心別上當.謝謝。如果真的詐騙成功不知道該找誰,跟別的店家買比較安全。
店家回覆:     您好~我們不幸被選作為詐騙跳板,我們也很懊惱、難過;每天擔心顧客不小心上當受騙,而知道顧客在被詐騙集團騷擾後,我們馬上報警處理並通知165詐騙專線,並沒有漠視消費者權益,但警方說這種網路詐騙事件他們不處理,165詐騙專線也只是確認他們是詐騙集團,根本無法將他們繩之以法,我們也求助無門。最後我們只好致電跟上百位客戶提醒,並不是沒有在處理,希望您能見諒,謝謝您  (2008/01/07 14:30:13)

亞訊e機棒_科技生活館

評價意見:      貨收到後第二天接到一通詐騙電話,被我識破後還被那女生罵髒話))&^%&*^$*&()….貴公司的客戶資料應該加強保護.
店家回覆:     大大 您好看到您的評價意見很驚嚇,網路駭客橫行這是無庸置疑不爭之事實,但是,我們公司從未發生(客戶資料被盜)這種事件,/駭客入侵/有可能是網路伺服器 (PChome主機)及買賣雙方的電腦被駭客值入木馬程式才會造成資料外流,經您反映告知我們公司已立即將管理網站的電腦主機請工程師協助迅速掃毒檢測,惟並無發現任何異常之處,公司同時將您評價意見及發生情況反映PChome相關部門之外,也特別對您發生以上事件表達關心之意。網路駭客真是猖狂橫行,唯有隨時保護好個資之外也建議您隨時為自已的電腦掃毒(請特別注意一般的防毒軟體是無法防止網路駭客的木馬攻擊和入侵竊盜及控制),避免開啟任何陌生的郵件和連結,發現網路變慢或有異常的情形一定要找電腦專業工程師檢查及維護。對以上的所發生之情事我們一定會再加強個資保護,如還有相關問題也歡迎您隨時反映連絡PChome客服投訴,或來電亞訊e機棒_科技生活館服務中心向服務人員告知。最後 敬祝 平安幸福 亞訊e機棒_科技生活館 經理 林茂森敬上 98/03/20  (2009/03/20 03:00:03)

PC流行通訊網

評價等級:      普通 (2009/08/25 17:00:24)
評價意見:     我今天收到詐騙電話 對方聲稱 我於貴商店購買的耳機付款有問題. 會造成連續扣款. 我想了解貴商店的資料是如何洩漏出去的?
店家回覆:     謝謝您的評價~有您的支持與推薦,我們一定更加努力經營,以後有機會再為您服務囉!!  (2009/08/25 17:38:19)
評價等級:     待加強 (2009/09/12 11:55:29) (最新一筆)
評價意見:     我接到詐騙電話 聲稱我於貴商店購買的 "JABRA BT-530~全新遠寬公司貨~ 原廠[一對二]A2DP 抗燥音藍牙耳機BT530″ 商品,誤辦理為分期.要求我要操作 ATM. 我於兩週前通知貴商店,並請貴商店了解資料是如何外洩的.可貴商店置之不理. 貴商店漠視此一資料外洩事件的態度令人感到匪夷所思. 貴商店既然沒有誠意想改善與了解此個人資料外洩的問題.我也不會再貴商店繼續購物.以免個人資料繼續外流.
店家回覆:     您好:我們十分重視您的購物權益,針對資料外洩一事我們因為跟PCHOME研商原因,且目前PCHOME也已經把購物通知的資料不再顯示,我們也針對公司內部所有電腦進行資安清查,並未發現有病毒侵害及惡意木馬的植入,我們已經於9/10日去函回覆給您~有關PCHPME系統人員的答覆,及我們的處理狀況, 並非置之不理尚請貴客見諒!讓您擔憂在此致上我們的歉意,這一次PCHOME的事件已經有許多商店都有受害,您和我們都並不是唯一的受害者,相信只要我們提高警覺,一定可以打擊犯罪~感恩  (2009/09/12 18:46:58)

以這些資料來看

DA量販有兩筆負評是收到詐騙電話,加上我自己一筆,不知道是太久沒給還是我給過了所以不能給,總共有三筆,在這麼短的時間內有三筆收到詐騙電話的負評,顯然肯定是從店家或平台流出去的,在我撈到的資料中,店家有六千多家,但是有詐騙反應的,通常都是少數、且在集中時間內,這樣表示,從平台漏出去的機會比較小,而從店家流出去的可能性極高,以DA量販來看,幾乎可以肯定是他們流出去的,至於是有意或無意的這就不知道了,而其它撈到的,像是電氣男購物城,也有短時間內兩筆,這同樣顯示資料是從他們那裡流出去的,為什麼其它店家都不會有這問題,而上列的這些店家都有呢? 當然就是你們自己的問題了,可是令人憤怒的是各種推託的理由都有,把責任推給使用者、推給銀行,就是死不承認資料是從自己身上流出去的,我知道這很難證明,但是數據和各種的可能性推出來都是如此

不是只有中木馬才會把資料流出去

很多店家都說,我們都有掃毒,但都沒發現異狀,其實會把資料流出去,通常都是用更簡單的方式,就是用釣魚(Phishing)的方式,是一種比木馬等其它方式取得帳密更簡單卻有效的方式,做法就是,造一個假的商店街登入頁面,看起來和原本的一模一樣,然後以各種理由把網址傳給店家,例如回復訊息、您的帳號疑似被盜用,需要更改帳密等等,店家收到信之後,點開連結要求你登入,於是傻傻的店家就真的把帳號密碼輸入了這個假的登入頁面接著送出,當然就落到了詐騙集團手裡,而且比起木馬會被發現,但是他拿到你的帳密後,偷偷登入看你買家的資料,你可能很難發現,其實平台可以提供登入的記錄,如果這麼做的話,也比較容易發現偷偷的登入,像是如果我明明沒有在昨天早上登入帳號,但是卻有這麼一筆記錄存在,很明顯地肯定是帳號密碼外流了

外流資料環節偵測系統

雖然有這些數據,但是其實還是不足以夠精確地找出資料是從哪裡流出去的,為此,我想可以用一套系統,以科學的方法找到並定位資料外流的環節,方法很簡單,就是每發現一次接到詐騙電話的反應,就在那訂單所有可能外洩的環節上,加上1分,在這麼多個環節中,分數遠高於其它環節的,即是外流資料的兇手,為何資料外流積分這麼高,不是你流出去的難到是阿飄流出去的嗎? 可惜的是似乎從來沒有人認真去找出資料是從哪裡流出去的,就任憑資料流阿流的,成為詐騙集團的最大幫兇

最後

使用者本身也有責任,接到詐騙電話,資料是從某店家那裡流出去的,請不用客氣給與最差的評價,連客戶資料都管不好,沒什麼好講的,務必讓大家知道這些沒辦法守好資料的商家,或是在其背後的任何一個環節,店家也要養成良好的習慣,不要亂裝來路不明的程式,有人寫信給你,連結最好不要隨便點,即使點開了,也要注意網址正不正確,有些甚至會申請看起來好像很像的域名來魚目混珠,千萬不要傻傻的點了就輸入帳號密碼試著登入,最好是自己從後台的書籤入口登入,避免點信件裡的連結接著登入系統,因為信件裡的連結很可能都是釣魚的連結,不然到時帳號密碼又被偷,不僅賠了商譽,買家也會成為受害者