这是Ajax实时搜索的缺点还是服务器的问题?


Is this a drawback for Ajax live search or a issue with the server

我的网站上有一个实时搜索栏。今天我试着检查了一下网站的安全性。在搜索栏中,我不停地输入数据(搜索词),过了一段时间,我的服务器崩溃了。有什么预防措施可以帮助解决这个问题吗?实时搜索的工作:通过

将输入的数据定向到javascript函数
onkeyup()

获取值输入并使用

对服务器进行Ajax调用
SELECT and LIKE

语句,选择数据表单db并将其返回给javascript, javascript将结果显示在屏幕上。

也许我需要做一些调整和检查之前发送到php?

我看到你的方法至少有两个问题:

  • 首先为每个类型的字符发送一个请求。根据您网站的流量,可能会有很多请求。
  • 如果你不检查你发送的东西,一些恶意用户可以很容易地用SQL注入攻击它。喜欢……如果用户搜索"a",会发生什么?SELECT * FROM userinfo WHERE 't' = 't';?

我建议你使用onsubmit而不是onkeyup,并在发送查询之前检查输入的内容。