Como impedir o registro da conta de spam, além de ativar o CAPTCHA nos formulários (que eu já tentei)? Estamos lidando com uma inundação constante deles.
O primeiro nome do campo é sempre caracteres russos, portanto, se não for uma rota mais fácil, talvez seja uma maneira de detectar um determinado caractere e bloquear o registro nesse caso?
magento2
magento2.1.11
brackfost
fonte
fonte
Respostas:
Passamos pelo mesmo problema, a limitação do comprimento máximo frontal foi ignorada facilmente (tente você mesmo removendo a classe length-length-length-25 do html).
Então, aqui está o que eu encontrei:
Solução 1: Bloqueio via IP: cada assinatura de conta usa um IP diferente da Colômbia para o Vietnã ...
Solução 2: Bloqueio via agente do usuário: pode ser falsificado ... Funciona se você deseja limitar os borrões dos rastreadores.
Solução 3: Use HoneyPot: may funciona, mas se o bot já o focou, acho que certamente sabe quais campos publicar (consulte: https://magento.stackexchange.com/a/104261/50635 )
Solução 4: Captcha (Magento ou Google): pode funcionar, mas algumas pessoas disseram que foi ultrapassada
Solução 5: edite o modelo de email e adicione o email de confirmação :
Solução 6: atualize as regras de limitação de campos do banco de dados: diretamente na tabela customer_eav_attribute , atualize as linhas com attribute_id = 5 [firstname] e attribute_id = 7 [lastname] e substitua 255 por 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;}
A solução 6 parece a maneira mais rápida e eficaz de evitar spambots, pois eles usam mais de 25 caracteres.
Desde então, não foi criada mais conta falsa! Problema resolvido.
Se eles tentarem com menos, isso os restringirá ao menos na tentativa de phishing.
Você pode verificar quantos usuários já possuem um nome ou sobrenome com mais de 25 caracteres, no nosso caso, realmente menores:
fonte
Considerando que estamos falando de registro de conta, parece que você está no caminho certo. Você já tentou alterar o assunto do registro de e-mail?
provavelmente está em app / locale / yourlanguage / template / email / account_new.html
fonte
Como observação complementar, excluí as contas de spam com o seguinte código:
fonte
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
seguida, criei umdeleter_index_index.xml
arquivoDeleter/view/frontend/layout
com <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" /> lá para que quando você acessa seu site.com/deleter, o código seria executado. Apenas certifique-se de desativar e excluir o módulo posteriormente.Use o cloudflare ou algum outro firewall para bloquear alguns países, se puder. China, Hong Kong, Rússia. No entanto, isso não interrompe todo o spam e não funciona se você precisar que esses países possam acessar, é claro. Mas foi útil deixar-me usar o painel de administração, pois o servidor estava sendo martelado com bastante força.
Ative a compilação no Google Recaptcha ou use um plug-in alternativo se você não atualizou o Magento para 2.3.0+
No Magento 2.3, para ativar o reCAPTCHA incorporado no Google.
1) Visite Stores> Configurações> Configuração> Segurança> Google reCAPTCHA 2) Gere Recaptcha invisível recaptcha v2 ou não sou um bot keys. 3) Digite-os na configuração de administrador nessa página e ative-o no front-end para Usar em Criar usuário.
A ativação de outros recursos também não pode prejudicar.
Para limpar contas existentes, encontre padrões em suas entradas e crie consultas para selecioná-los, garantindo que seus usuários normais não façam parte desse conjunto de dados.
Você pode excluí-los da tabela customer_entity.
Exemplo de SQL de um site que eu limpei: Crie o seu próprio, pois seria necessário ter em mente as suas circunstâncias, o seu conjunto de dados etc. não me responsabilize se você limpar os usuários errados, faça o backup primeiro!
Verifique se o Magento Captcha básico antigo está desativado. Clientes> Configuração do Cliente> CAPTCHA
Ativar CAPTCHA na montra: Não
Como entrará em conflito com o Google reCAPTCHA ...
Links para documentação oficial:
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
Os bots parecem atingir o ponto de extremidade de criação da conta (sim, mesmo que você exclua os botões / links Criar conta do seu tema), mas é recomendável excluir as contas ou desativar o sistema, pois eles podem dormir até mais tarde e enviar spam a outras coisas. seu DB de qualquer maneira ....
Boa sorte a todos.
fonte
Você pode facilmente bloquear os domínios e definir a mensagem de erro a ser exibida quando um usuário tentar se registrar com um domínio de email na sua lista de bloqueios. As instruções completas são as seguintes -
Crie um novo módulo com o nome EmailCheck na pasta Ecomsolver
Etapa - 1 Escreva o seguinte código no painel de administração. O caminho do arquivo será -
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>
Etapa - 2 Escreva o seguinte código em um arquivo. O caminho do arquivo será -
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>
Etapa 3 - Escreva o seguinte código no arquivo XML com o nome Config. O caminho do arquivo será -
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>
Etapa - 4 Escreva o seguinte código no arquivo XML com o nome Module. O caminho do arquivo será -
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>
Etapa - 5 Crie o nome da pasta Modelo no EmailCheck. Em seguida, crie a subpasta
Plugin > Controller > Account
. Escreva o seguinte código no arquivo php com o nome RestrictCustomerEmail. O caminho do arquivo php será -Ecomsolver >EmailCheck > Plugin > Controller > Account > RestrictCustomerEmail
/*Ecomsolver @@@@@@ [email protected]*/ 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 {
fonte
Eu o resolvi adicionando o código a seguir ao .htaccess como lote de depuração. Não encontrei nada, mas ao criar um evento no cliente, salve depois que eu recebi isso e, em seguida, seu cancelamento agora.
fonte