【发布时间】:2020-11-04 20:45:31
【问题描述】:
我想使用 React.js 向垃圾邮件机器人隐藏我的电子邮件链接。我的想法是将电子邮件链接放入 <div> 中,只有在有人单击触发按钮(如下拉菜单)时才会呈现。因此它只在客户端呈现(因此至少 Google 爬虫应该无法读取它)。
此外,链接的组件(将是下拉组件的子组件)如下所示:
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import './styles.scss';
const LinkEmail = ({ user, domain, tld }) => {
const [finalLink, setFinalLink] = useState('');
useEffect(() => {
setFinalLink(`mailto:${user}@${domain}.${tld}`);
}, []);
return (
<a
href={finalLink}
className='link-email'
data-user={user}
data-domain={domain}
data-tld={tld}
/>
);
}
LinkEmail.propTypes = {
user: PropTypes.string.isRequired,
domain: PropTypes.string.isRequired,
tld: PropTypes.string.isRequired,
};
export default LinkEmail;
通过这种方式,我尝试通过额外的渲染迭代来保护渲染的电子邮件地址。
链接的用户可读文本将使用 SASS 组合在一起:
.link-email {
&:before {
content: attr(data-user) "@";
}
&:after {
content: attr(data-domain) "." attr(data-tld);
}
}
你觉得我的解决方案怎么样?这个防御计划对垃圾邮件机器人是否足够有效?我错过了什么吗?有什么我可以改进来增加保护的吗?
提前致谢
【问题讨论】:
-
不幸的是,如果刮板设计得足够智能,任何事情都可以绕过