是否可以限制 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】:

当然你必须决定如何存储变量,因为重新加载页面会重置它,你可以使用cookielocalStorage

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 中文本输入的每分钟最大条目数?的主要内容,如果未能解决你的问题,请参考以下文章

将文本输入限制为数字,空文本输入结果不是空值而是0?

输入框小数位限制

AppleScript:是不是可以限制可在 Safari 文本字段中输入的字符串长度?

fullcalendar 可以容纳的最大数据限制

限制主键的最大条目

如何将文本字段中允许的最大输入值限制为 10? [复制]