我已经对注射/ XSS攻击如何工作做了一些研究。似乎黑客只是使用USER INPUT字段来输入代码。
但是,假设我仅使用带有preg_replace的字母数字(a-zA-Z0-9)限制每个USER INPUT字段,并假设我使用即将被弃用的my_sql而不是PDO或my_sqli。
黑客仍然可以注入/破解我的网站吗?
谢谢!
答案 0 :(得分:1)
简短版本:不要这样做。
长版:
假设你有
SELECT * FROM my_table WHERE id = $user_input
如果发生这种情况,那么一些输入(例如CURRENT_TIMESTAMP
)仍然可能,但“攻击”将被限制在可能无害的点。这里的解决方案可能是将输入限制为[0-9]
。
在字符串("$user_input"
)中,问题甚至不应存在。
然而:
á
呢?如果我想引用""
的某人,该怎么办?用<
写一个数学表达式(甚至写一些看似无害的东西,如i <3 u
)?所以现在你有:
您正专注于解决已经解决的问题。为什么浪费时间做一些需要时间来开发的东西,并且当其他人已经开发出几乎不需要努力使用的适当解决方案时,很难维持。
最后,don't use deprecated APIs。事情因某种原因而被弃用。弃用可能意味着“我们会在任何时候放弃支持”或“这有严重问题,但我们无法解决这个问题”。
过时的API应该由没有足够时间或资源进行迁移的开发人员的遗留应用程序使用。从头开始时,请使用支持的API。