gpt4 book ai didi

javascript - Angular : How to restrict user inputs which contain sql query keywords (for sql injection)

转载 作者:行者123 更新时间:2023-11-29 21:59:38 25 4
gpt4 key购买 nike

我在 AngularJs 项目中有一个关于登录和其他表单的要求,以限制在输入字段中包含特定关键字(如“SELECT”、“INSERT”、“UPDATE”、DELETE”、“DROP”等)的用户输入。这将帮助我们防止 SQL 注入(inject)攻击。

如果我们有任何 angularjs 库来完成这个,请告诉我。或者如何使用 angularjs 有效地实现这一点?

谢谢。

最佳答案

  1. 黑名单不是安全的答案。如果您检查单词“select”,攻击者将注入(inject)“sElEct”或“sel/**/ect”(在 MySQL 中)。如果用空格分隔单词,攻击者将使用注释(“/**/”)或制表符作为分隔符。您永远无法使用黑名单方法(尤其是您建议的整个单词)取胜,始终使用白名单方法并仅允许使用允许的字符(例如 a-z、A-Z、0-9)。

  2. 任何客户端验证都注定会失败。攻击者可以使用任何简单的代理(如 fiddler 或 burp)轻松攻击任何基于 Javascript 的“防御”。您应该在服务器端代码中实现您的白名单输入验证以及参数化查询或其他一些最佳实践,以防止 DAL 级别的 SQL 注入(inject)(建议同时使用)。

    <

关于javascript - Angular : How to restrict user inputs which contain sql query keywords (for sql injection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24528523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com