是否可以限制 html 中文本输入的每分钟最大条目数?
Posted
技术标签:
【中文标题】是否可以限制 html 中文本输入的每分钟最大条目数?【英文标题】:Is it possible to limit max entries per minute for a text input in html? 【发布时间】:2021-04-30 17:34:27 【问题描述】:我即将完成我自己用 html 编写的网站,我想知道如何确保它的安全。 到目前为止,我已经限制了搜索栏的最大长度并禁用了特殊字符。 是否可以限制文本输入的每分钟最大条目数? 如果有人对如何使网站安全有任何其他建议,请告诉我! 谢谢!
【问题讨论】:
限制输入到搜索栏如何使您的应用程序更安全?您应该假设所有用户输入都是不安全的,并且无论如何都要对其进行清理。 对你的问题:是的,javascript 是可能的... @Dominik OP 可能意味着不受 DDOS 攻击类型向量的影响,但这无论如何都无法在客户端处理。这是他需要处理服务器端的事情.. 确实如此。不是通过限制搜索字段输入来解决的问题;) 【参考方案1】:当然你必须决定如何存储变量,因为重新加载页面会重置它,你可以使用cookie
或localStorage
const out = document.querySelector('#output')
const txt = document.querySelector('#text')
const btn = document.querySelector('#btn')
btn.addEventListener('click', enter, 'false');
const time = document.querySelector('#time')
let allowTime = new Date().getTime();
const diff = (end, start) => (end - start) / 1000
const lock = () =>
const i = setInterval(()=>
const now = Date.now()
const wait = diff(allowTime, now)
if (wait <= 0)
time.textContent = 0;
allowTime = now;
clearInterval(i);
else
time.textContent = Math.floor(wait);
,
1000)
function enter()
const now = Date.now();
if (diff(allowTime, now ) <= 0)
out.textContent += txt.value + '\n';
txt.value = '';
allowTime = now + (1000 * 20) // <----- wait 20 seconds
lock()
<pre id="output">
</pre>
<p>wait: <span id="time">0</span> seconds</p>
<input type="text" id="text">
<button id="btn">send</button>
【讨论】:
谢谢你!我如何修改代码以便等待 1 秒而不是 18 秒? 这里 allowTime = now + (1000 * 20) 只需乘以你想要的秒数以上是关于是否可以限制 html 中文本输入的每分钟最大条目数?的主要内容,如果未能解决你的问题,请参考以下文章