以下情况如何避免DoS攻击?
CREATE OR REPLACE FUNCTION slow_function (
p_in INT
AS
BEGIN
DBMS_LOCK.sleep(p_in);
END;
)
DBMS_LOCK.SLEEP 不使用任何重要资源。 该功能没有任何特定功能可以引发拒绝服务攻击。 相反,这可能是任何人都可以执行的最安全的功能之一。
为了演示这一点,我在 PC 上运行了以下测试用例,以模拟 100 个会话同时调用该函数。 即使有 100 个会话,oracle.exe 也使用不到 1% 的 CPU。
CREATE OR REPLACE FUNCTION slow_function (
p_in INT) RETURN NUMBER
AS
BEGIN
DBMS_LOCK.sleep(p_in);
RETURN 1;
END;
/
select /*+ parallel(100) */ slow_function(60) from dba_tables;
--In another session, check that statement is really using 100 sessions.
select * from v$px_process;