स्पैम खाता पंजीकरण रोकें


10

कैप्चा को रूपों पर सक्षम करने से अलग (जो मैंने पहले से ही कोशिश की है) को कैसे रोका जाए? हम उनमें से लगातार बाढ़ से निपट रहे हैं।

पहला नाम फ़ील्ड हमेशा रूसी वर्ण है, इसलिए एक आसान मार्ग विफल हो रहा है, शायद एक निश्चित चरित्र का पता लगाने और उस मामले में पंजीकरण को अवरुद्ध करने का एक तरीका है?


या अगर किसी को भी इसी तरह के मुद्दे हैं, लेकिन मॉड्यूल, आदि के साथ भाग्य पड़ा है, तो कृपया मुझे बताएं।
ब्रैस्टफोस्ट

जवाबों:


15

हम उसी समस्या से गुज़रे, सामने की अधिकतम गति को आसानी से दरकिनार कर दिया गया ( html से अधिकतम लंबाई -25 वर्ग को हटाकर इसे स्वयं आज़माएं )।

तो यहाँ मैं क्या पाया:

  • समाधान 1: आईपी ​​के माध्यम से अवरुद्ध: प्रत्येक खाता सदस्यता कोलंबिया से वियतनाम तक एक अलग आईपी का उपयोग करती है ...

  • समाधान 2: उपयोगकर्ता एजेंट के माध्यम से अवरुद्ध: यह नकली हो सकता है ... यह काम करता है यदि आप क्रॉलर ब्लास्ट को सीमित करना चाहते हैं।

  • समाधान 3: हनीपॉट का उपयोग करें: काम कर सकता है, लेकिन अगर बॉट पहले से ही आपको ध्यान केंद्रित करता है, तो मुझे लगता है कि यह निश्चित रूप से जानता है कि कौन से फ़ील्ड पोस्ट करना है (देखें: https://magento.stackexchange.com/a/104261/50635 )

  • समाधान 4: कैप्चा (Magento या Google): काम कर सकता है लेकिन कुछ लोगों ने कहा कि यह ओवरपास हो गया था

  • समाधान 5: ईमेल टेम्पलेट संपादित करें और पुष्टि ईमेल जोड़ें :

    • इनपुट डेटा जैसे {{var customer.name}}, {{var customer.firstname}} को /app/locale/ Islocaleades/template/email/account_new.html टेम्पलेट से हटाकर स्पैम के रूप में चिह्नित होने से रोका जा सकता है।
    • ईमेल पुष्टिकरण जोड़ें: सिस्टम> कॉन्फ़िगरेशन> ग्राहक कॉन्फ़िगरेशन> ईमेल पुष्टिकरण की आवश्यकता> हाँ
  • समाधान 6: डेटाबेस से फ़ील्ड्स लिमिटेशन नियमों को अपडेट करें: सीधे customer_eav_attribute तालिका में, पंक्ति पंक्तियों को विशेषता_id = 5 [firstname] और विशेषता_id = 7 [lastname] के साथ अपडेट करें और 255 को 25 से प्रतिस्थापित करें :

    • a:2:{s:15:"max_text_length";i:255;s:15:"min_text_length";i:1;}
    • द्वारा : a:2:{s:15:"max_text_length";i:25;s:15:"min_text_length";i:1;}

समाधान 6 स्पैम्बोट्स को रोकने के लिए सबसे तेज़ और अधिक प्रभावी तरीका लगता है, क्योंकि वे 25 से अधिक वर्णों का उपयोग कर रहे हैं।

तब से, कोई और अधिक खाता नहीं बनाया गया था! समस्या सुलझ गयी।


यदि वे कम के साथ प्रयास करते हैं, तो यह कम से कम उन्हें अपने फ़िशिंग प्रयास में प्रतिबंधित कर देगा।

आप इस बात की जाँच कर सकते हैं कि हमारे मामले में कितने उपयोगकर्ताओं के पास पहले से ही पहला नाम या अंतिम नाम 25 अक्षरों से अधिक है, वास्तव में मामूली:

SELECT ce.entity_id, ce.email, cev2.value AS firstname, cev3.value AS lastname
FROM customer_entity ce
-- first name
INNER JOIN customer_entity_varchar cev2 ON (ce.entity_id = cev2.entity_id AND cev2.attribute_id = 5)
-- last name
INNER JOIN customer_entity_varchar cev3 ON (ce.entity_id = cev3.entity_id AND cev3.attribute_id = 7)
WHERE CHAR_LENGTH(cev2.value)>25 or CHAR_LENGTH(cev3.value)>25

अधिक जानकारी के लिए ये फर्जी खाते क्यों पंजीकृत हैं, यहां पढ़ें: https://magento.stackexchange.com/a/240710/50635


1
नमस्ते, समाधान 6 के लिए आपने ऊपर उल्लेख किया है। मुझे Magento 2.2.6 के लिए क्या करना चाहिए? my validate_rules दिखाता है "{" max_text_length ": 225," min_text_length ": 1}", और एक input_filter भी है: "ट्रिम"। क्या मुझे उसे हटा देना चाहिए, और सिर्फ 225 से 25 को संपादित करना चाहिए? धन्यवाद
क्रिश वेन

225 को 25 से बदलने का प्रयास करें, फिर परीक्षण करें कि क्या यह काम करता है
डिपेंडेंसीहेल

2
मैंने 25 में से 225 को बदलने की कोशिश की, और कल "ट्रिम" को हटा दिया, लेकिन आज भी नए स्पैम्स मिल रहे हैं। मैंने अभी एक नया प्रश्न खोला: magento.stackexchange.com/questions/266564/…
क्रिश वेन

1

यह देखते हुए कि हम खाता पंजीकरण के बारे में बात कर रहे हैं, ऐसा लगता है कि आप सही रास्ते पर हैं। क्या आपने ईमेल पंजीकरण विषय को बदलने की कोशिश की है?

यह शायद ऐप / लोकेल / yourlanguage / टेम्पलेट / ईमेल / account_new.html पर है


1

पूरक नोट के रूप में, मैंने निम्नलिखित कोड के साथ स्पैम खातों को हटा दिया:

$customers = $this->getCustomerCollection();

$this->registry->register('isSecureArea', true);

function isRussian($text) {
    return preg_match('/[А-Яа-яЁё]/u', $text);
}

foreach($customers as $customer){
  $name = $customer->getName();
  if(isRussian($name)){
    $customer->delete();
  }
}

यह इस मुद्दे को हल नहीं करता है
Gezzasa

निजी तौर पर, मैंने डिपेंडेंसीहेल के समाधान का इस्तेमाल किया 6. बस इसे शामिल करना चाहता था यदि रूसी स्पैम को बड़े पैमाने पर हटाने के लिए किसी और की आवश्यकता हो।
19

नमस्ते, मुझे यह कोड कैसे चलाना चाहिए? मैं Magento 2.2.6 पर हूँ। धन्यवाद
क्रिश वेन

अरे @KrisWen, मुझे यकीन नहीं है कि अगर यह अन्य उपयोगकर्ताओं को अपनी आँखें रोल करेगा, लेकिन मैं सिर्फ आपके कस्टम मॉड्यूल में एक टेम्पलेट में डालूंगा। मेरे मामले में, मैंने इसे अटका दिया App/Code/Ibex/Deleter/view/frontend/templates/customer.phtmlऔर फिर <block class = "Ibex \ Deleter \ Block \ Delete" नाम = "delete" टेम्पलेट = "Ibex_Deleter :: character.phtml" /> के साथ एक deleter_index_index.xmlफाइल बनाई, Deleter/view/frontend/layoutताकि वहां जब ऐसा हो आप yoursite.com/deleter पर जाएं कोड चलेगा। बस बाद में मॉड्यूल को निष्क्रिय करना और हटाना सुनिश्चित करें।
ब्रैफॉस्ट

हा हा धन्यवाद! @TryingestFool मुझे मूल चयनित उत्तर के बारे में कुछ भ्रम है। क्या आप को पता है? -> "हाय, आपके द्वारा बताए गए समाधान 6 के लिए। मुझे Magento 2.2.6 के लिए क्या करना चाहिए? मेरा मान्य_रुल्स दिखाता है" {"max_text_length": 225, "min_text_length": 1} ", और एक input_filter भी है:" "ट्रिम"? क्या मुझे ट्रिम को हटाना चाहिए, और बस संख्या को 225 से 25 तक संपादित करना चाहिए? "
क्रिश वेन

1

यदि आप कर सकते हैं तो कुछ देशों को अवरुद्ध करने के लिए क्लाउडफ्लेयर या कुछ अन्य फ़ायरवॉल का उपयोग करें। चीन, हांगकांग, रूस। हालांकि यह सभी स्पैम को नहीं रोकता है और काम नहीं करता है यदि आपको उन देशों की आवश्यकता है जो पाठ्यक्रम का उपयोग करने में सक्षम हैं। लेकिन यह वास्तव में मुझे व्यवस्थापक पैनल का उपयोग करने देने में मददगार था क्योंकि सर्वर बहुत मुश्किल से अंकित हो रहा था।

यदि आपने Magento को 2.3.0+ में अपडेट नहीं किया है, तो Google Recaptcha में बिल्ड को सक्षम करें या एक वैकल्पिक प्लगइन का उपयोग करें

मैगेंटो 2.3 में Google reCAPTCHA में निर्मित को सक्षम करने के लिए।

1) स्टोर पर जाएँ> सेटिंग्स> कॉन्फ़िगरेशन> सुरक्षा> Google reCAPTCHA 2) Recaptcha v2 अदृश्य पुनरावृत्ति उत्पन्न करें या मैं कोई बॉट कुंजी नहीं हूं। 3) उन्हें उस पेज पर दिए गए एडमिन कॉन्फिगर में एंटर करें और इसे यूज फॉर क्रिएट यूजर के फ्रंट पर इनेबल करें।

अन्य सुविधाओं के लिए सक्षम करना वास्तव में या तो चोट नहीं पहुँचा सकता है।

मौजूदा खातों की सफाई के लिए उनके इनपुट में पैटर्न ढूंढें और उन्हें चुनने के लिए क्वेरीज़ का निर्माण करें ताकि यह सुनिश्चित हो सके कि आपके सामान्य उपयोगकर्ता डेटा के उस सेट का हिस्सा नहीं हैं।

आप उन्हें customer_entity तालिका से हटा सकते हैं।

उदाहरण एसक्यूएल एक ऐसी साइट से जिसे मैंने साफ किया था: अपना खुद का क्राफ्ट करें क्योंकि इसे आपकी परिस्थितियों से सावधान रहने की आवश्यकता होगी क्योंकि आपके उपयोगकर्ता आदि मुझे जिम्मेदार नहीं ठहराते हैं यदि आप गलत उपयोगकर्ताओं को पहले बैकअप लेते हैं!

DELETE FROM customer_entity
WHERE SUBSTRING_INDEX(email, '\@', -1) IN ('pp.com',
'sf-express.com',
'qqlong.com',
'kinohit.win',
'sohu.com',
'21cn.com',
'yeah.net',
'koreamail.com',
'aliyun.com',
'mail.ru',
'VIP.SINA.COM',
'yahoo.co.in',
'icload.com',
'sogou.com',
'vip.qq.com',
'sina.cn',
'189.cn',
'wo.com.cn',
'qq.cn',
'sina.com.cn',
'126.cn',
'yahoo.com.cn',
'3g.cn',
'163.com',
'167.com',
'139.com',
'126.com',
'130.com',
'144.com',
'123.com',
'ca800.com',
'168.com',
'188.com',
'1974.com',
'qq.co',
'sina.com',
'qq.com',
'qq.con',
'QQ.come',
'yandex.com',
'5ol.com',
'yeat.net',
'yahoo.cn')
OR lastname LIKE '%http://%'
OR lastname LIKE '%https://%'
OR lastname LIKE '%【%】%'
OR lastname LIKE '%tw55.cc%'
OR lastname LIKE '%www.ope2228.com%'

सुनिश्चित करें कि पुराना बेसिक Magento कैप्चा अक्षम है। ग्राहक> ग्राहक कॉन्फ़िगरेशन> कैप्चा

सक्षम करें स्टोर के सामने कैप्चा: नहीं

चूंकि यह Google reCAPTCHA के साथ संघर्ष करेगा ...

आधिकारिक दस्तावेज लिंक:

https://docs.magento.com/m2/ce/user_guide/configuration/security/google-recaptcha.html

https://docs.magento.com/m2/ce/user_guide/stores/security-google-recaptcha.html

बॉट्स सिर्फ अकाउंट क्रिएशन एंडपॉइंट को हिट करने के लिए प्रतीत होते हैं (हाँ, भले ही आप अपने थीम से क्रिएट अकाउंट बटन / लिंक हटा दें), लेकिन उनके अकाउंट्स को डिलीट करने या निष्क्रिय करने की सिफारिश की जाती है क्योंकि वे बाद तक सो सकते थे और अन्य चीजों को स्पैम कर सकते थे और वे स्पेस का उपयोग करते थे। वैसे भी आपका DB ...।

भाग्य आप सभी का साथ दे।


0

जब उपयोगकर्ता आपकी ब्लॉक सूची में ईमेल डोमेन के साथ पंजीकरण करने का प्रयास करता है, तो आप आसानी से प्रदर्शित होने वाले त्रुटि संदेश को ब्लॉक और सेट करने के लिए डोमेन रख सकते हैं। पूर्ण निर्देश निम्नानुसार हैं -

फ़ोल्डर Ecomsolver में एक नाम ईमेलचेक के साथ एक नया मॉड्यूल बनाएँ

चरण - 1 व्यवस्थापक पैनल पर निम्नलिखित कोड लिखें। फ़ाइल का पथ होगा -Ecomsolver >EmailCheck > etc > Adminhtml > System

<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <tab id="ecomsolver" translate="label" sortOrder="999"> <label>Ecomsolver</label> </tab> <section id="emailblock" translate="label" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="1"> <class>separator-top</class> <label>Email Check</label> <tab>ecomsolver</tab> <resource>PixieMedia_General::general_config</resource> <group id="domains" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain Names</label> <field id="domains" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain names to block</label> <comment>Comma separated values eg google.co.uk,mail.ru,some.com</comment> </field> <field id="message" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Message to display</label> <comment>The error message to show users who try to register with one of the above domain names</comment> </field> </group> </section> </system> </config>

Step - 2 एक फाइल में निम्न कोड लिखिए। फ़ाइल का पथ होगा - Ecomsolver >EmailCheck > etc > Frontend > di

<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Controller\Account\CreatePost"> <plugin name="restrictCustomerEmail" type="Ecomsolver\Emailcheck\Model\Plugin\Controller\Account\RestrictCustomerEmail"/> </type> </config>

चरण - 3 एक्सएमएल फ़ाइल में निम्न कोड को नाम विन्यास के साथ लिखें। फ़ाइल का पथ होगा -Ecomsolver >EmailCheck > etc > Config

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <emailblock> <domains> <domains>163.com,mail.ru</domains> </domains> <message> <domains>We do not allow registration from your email domain</domains> </message> </emailblock> </default> </config>

Step - 4 XML कोड में निम्न कोड को मॉड्यूल नाम से लिखें। फ़ाइल का पथ होगा -Ecomsolver >EmailCheck > etc > Module

<config xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Ecomsolver_Emailcheck" setup_version="1.0.0"> </module> </config>

Step - 5 EmailCheck में फ़ोल्डर का नाम मॉडल बनाएँ। फिर सबफ़ोल्डर बनाएं Plugin > Controller > Account। निम्नलिखित कोड को Php फ़ाइल में RestrictCustomerEmail नाम से लिखें। Php फ़ाइल का पथ होगा -Ecomsolver >EmailCheck > Plugin > Controller > Account > RestrictCustomerEmail

/*Ecomsolver @@@@@@ ecomsolver@gmail.com*/ namespace Ecomsolver\Emailcheck\Model\Plugin\Controller\Account; use Magento\Framework\Controller\Result\RedirectFactory; use Magento\Framework\UrlFactory; use Magento\Framework\Message\ManagerInterface; use Magento\Framework\App\Config\ScopeConfigInterface; class RestrictCustomerEmail {

 /**
  * @var \Magento\Framework\UrlInterface
  */

protected $urlModel;

/**
 * @var \Magento\Framework\Controller\Result\RedirectFactory
 */

protected $resultRedirectFactory;

/**
 * @var \Magento\Framework\Message\ManagerInterface
 */
protected $messageManager;
/**
 * RestrictCustomerEmail constructor.
 * @param UrlFactory $urlFactory
 * @param RedirectFactory $redirectFactory
 * @param ManagerInterface $messageManager
 */
public function __construct(
    UrlFactory $urlFactory,
    RedirectFactory $redirectFactory,
    ManagerInterface $messageManager,
    ScopeConfigInterface $scopeConfig
)
{
    $this->urlModel = $urlFactory->create();
    $this->resultRedirectFactory = $redirectFactory;
    $this->messageManager = $messageManager;
    $this->scopeConfig = $scopeConfig;
}
/**
 * @param \Magento\Customer\Controller\Account\CreatePost $subject
 * @param \Closure $proceed
 * @return mixed
 * @throws \Magento\Framework\Exception\LocalizedException
 */
public function aroundExecute(
    \Magento\Customer\Controller\Account\CreatePost $subject,
    \Closure $proceed
)
{
    /** @var \Magento\Framework\App\RequestInterface $request */
    $email = $subject->getRequest()->getParam('email');
    list($nick, $domain) = explode('@', $email, 2); 
    $domains = $this->scopeConfig->getValue('emailblock/domains/domains', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
    if(!$domains) { 
        return $proceed; 
    }
    $domainArray = array_map('trim', explode(',', $domains));
    if(count($domainArray) < 1) { 
        return $proceed;
    }       
    if (in_array($domain, $domainArray, true)){
    $message = $this->scopeConfig->getValue('emailblock/domains/message', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
        if(!$message) { $message = __('We do not allow registration from your email domain'); }
        $this->messageManager->addErrorMessage($message);
        $defaultUrl = $this->urlModel->getUrl('*/*/create', ['_secure' => true]);
        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
        $resultRedirect = $this->resultRedirectFactory->create();
        return $resultRedirect->setUrl($defaultUrl);
    }
    return $proceed();
}
}

-1

मैंने इसे निम्नलिखित कोड को .htaccess में डीबगिंग लॉट के रूप में जोड़कर हल कर लिया है, मुझे कुछ भी नहीं मिला, लेकिन जब मैंने इसे प्राप्त किया और फिर अब इसे फिर से शुरू किया, तो ग्राहक को बचाने के लिए एक ईवेंट बनाएं।

<IfModule mod_rewrite.c>
    RewriteCond %{HTTP_USER_AGENT} "rv:40\.0\)\ Gecko/20100101\ Firefox/40\.1$" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "Gecko.*Gecko" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "Gecko/([a-z]|[A-Z])\." [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "Gecko/\ " [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "Gecko/20([2-9])" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "Gecko/201([1-9])"
</IfModule>

नमस्कार, आपके प्रतिसाद के लिए धन्यवाद। उपरोक्त वास्तव में क्या करता है, और आपने गेको, आदि को लक्षित करने के लिए कैसे निर्धारित किया?
कोष्ठक

2
मैंने ग्राहक सेव इवेंट द्वारा इसका पता लगाया है। यह रूसी बॉट्स है। तो आप उन्हें उस कोड के द्वारा अक्षम कर सकते हैं। इसके अलावा अगर यह काम नहीं करता है, तो आपको एक घटना भी लिखने की ज़रूरत है जब ग्राहक $ _Server और $ _request के लिए लॉग सहेजता है और लिखता है, तो उसे डीबग करें
सुकुमार गोराई

उपयोगकर्ता एजेंट पाए गए: मोज़िला / 5.0 (विंडोज NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, जैसे गेको) क्रोम / 62.0.3202.94 सफारी / 537.36 और मोज़िला (5.0) (विंडोज NT 10.0; WOW64; rv: 45.0) गेको / 20100101 फ़ायरफ़ॉक्स / 45.0
डिपेंडेंसीहेल

अब आप इसे अपने htaccess में जोड़ सकते हैं और समस्या को हल कर सकते हैं
सुकुमार गोराई

हम इस उपयोगकर्ता एजेंट को ब्लॉक नहीं कर सकते क्योंकि हमारे पास इस एक के साथ बहुत सारे आगंतुक हैं। यह एक प्रसिद्ध बॉट निर्दिष्ट नहीं करता है, लेकिन एक आम उपयोगकर्ता एजेंट ...
डिपेंडेंसीहेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.