網站自動註冊問題
網站自動註冊問題
By 馬冬亮(凝霜 Loki)
一個人的戰爭(http://blog.csdn.net/MDL13412)
背景
前段時間ACM協會的一哥們給協會弄了一套OJ系統,使用了NOJ這個開源模板,並進行了一些定製。在使用過程中發現在註冊使用者的過程中沒有使用驗證碼,沒有驗證碼,那麼實現自動註冊就非常容易了,本文是我實現的一段並行註冊的指令碼。
原始碼
首先是worker_thread.sh指令碼,是真正用於自動註冊的執行緒:
#!/bin/env bash for i in `seq $1 $2` do curl --silent http://172.20.182.115:8080/acmhome/register.do?method=add -d "userName=test${i}&password=123456&rePassword=123456&nickName=&school=&blog=&email=&lang=English" > /dev/null done
接下來是並行註冊的負載排程程式parallel_reg.sh:#!/bin/env bash thread_count=10 user_start_index=1 user_end_index=5000 step=$(( (${user_end_index} - ${user_start_index} + 1) / ${thread_count})) for i in `seq 0 $(( ${thread_count} - 1 ))` do ./worker_thread.sh $(( ${i} * ${step} + 1 )) $(( ${i} * ${step} + ${step} )) & done
原理
先來說說負載排程的原理:
- 設定並行引數。thread_count設定並行執行緒的數量,user_srart_index設定註冊使用者的起始編號,user_end_index設定註冊使用者的終止編號;
- step變數用於計算每個工作執行緒需要負載的註冊數量;
- 通過for迴圈,將任務分塊,並傳遞給worker_thread.sh進行後臺註冊。
接下來講解下work_thread.sh的原理:
- 通過接收parallel_reg.sh傳遞進來的兩個引數,可以確定註冊的起始編號和結束編號,並以此作為for迴圈的範圍;
- 使用了強大的curl程式,其中--slient引數指明靜默執行,而http://172.20.182.115:8080/acmhome/register.do?method=add這個url是用於提交登錄檔單的註冊頁面,接下來的-d "userName=test${i}&password=123456&rePassword=123456&nickName=&school=&blog=&email=&lang=English"則是要提交表單中的內容,其中的test${i}將被替換成例如test1,test2,test9這種形式,最後將所有的輸出都重定向到/dev/null中,因為我們不需要檢視這些資訊。
總結
通過上述兩個指令碼,我們可以看出在沒有註冊碼的情況下網站被惡意註冊是一件非常簡單的事情,因此我們在設計網站的時候對註冊碼一定要認真對待,要盡最大可能增加其識別難度,以防止惡意註冊。
相關文章
- zabbix自動註冊
- Oracle10g中的靜態註冊及動態註冊問題Oracle
- @EnableDiscoveryClient與Nacos自動註冊client
- 自動註冊appleidAPP
- 需求分析案例 - “自動註冊”功能
- Oracle監聽器的靜態註冊與動態註冊,以及DB_DOMAIN問題OracleAI
- 域名註冊網站哪個好?國外域名註冊商推薦網站
- “正在註冊字型”問題解決
- 自動註冊gmail郵箱構想AI
- 記一次Oracle無法動態註冊問題Oracle
- Oracle自動動態註冊成功的條件Oracle
- 網站自動生成?網站
- Oracle listener靜態及動態註冊總結(轉自網路)Oracle
- .net網站自動化部署-致兩年前的遺留的問題網站
- 政府網站域名有什麼特點?如何註冊政府網站域名?網站
- 動態註冊和靜態註冊
- 靜態註冊和動態註冊
- RTThread 自動網路卡使用問題thread
- oracle 10g 中的靜態及動態註冊問題Oracle 10g
- Nuxt Kit 元件管理:註冊與自動匯入UX元件
- Android 通用的元件自動註冊、自動初始化解決方案Android元件
- ATL元件中文路徑註冊問題 (轉)元件
- 領英宣佈開源其兩大網站問題自動修復工具網站
- Oracle Listener 動態註冊 與 靜態註冊Oracle
- Oracle listener靜態註冊和動態註冊Oracle
- Oracle Listener 動態註冊與靜態註冊Oracle
- 【監聽】動態註冊和靜態註冊
- oracle的靜態註冊和動態註冊Oracle
- com註冊會自動執行的程式碼段
- attachEvent()註冊事件處理函式this指向問題事件函式
- banq,關於你那註冊程式的問題
- SpringBoot之網站的登陸註冊邏輯Spring Boot網站
- redhat紅帽redhat network(RHN)網站website註冊資訊Redhat網站Web
- .NET網站自動化部署網站
- 【LISTENER】使用“alter system register;”解決動態監聽註冊緩慢問題
- oracle監聽靜態註冊和動態註冊Oracle
- 靜態註冊和動態註冊總結(zt)
- oracle監聽動態註冊與靜態註冊Oracle