Skip to content

Title: Allow scanning multiple URLs at once (bulk scan) #181

Description

@NaitikVerma6776

Description

Currently CyberShield only allows scanning one URL at a time. Users who need to
check multiple links — such as security researchers, students, or people who
received a suspicious email with several links — have to scan them one by one,
which is slow and tedious.

Expected Behaviour

Add a "Bulk Scan" mode where users can paste multiple URLs (one per line) into
a textarea and scan all of them at once. Results should be displayed as a list
with individual safe/danger badges for each URL.

Example Input

https://google.com
https://github.com
http://testsafebrowsing.appspot.com/s/phishing.html
http://testsafebrowsing.appspot.com/s/malware.html

Expected Output

A results list showing each URL with its own status badge:
https://google.com — Safe
https://github.com — Safe
http://testsafebrowsing.appspot.com/s/phishing.html — Phishing
http://testsafebrowsing.appspot.com/s/malware.html — Malware

Implementation Suggestion

  • Add a toggle button "Bulk Scan" near the existing scan input to switch modes
  • In bulk mode, replace the single input with a <textarea> (one URL per line)
  • On scan, split by newline, filter empty lines, and call the existing /check
    backend endpoint for each URL sequentially (to avoid rate limiting)
  • Show a progress indicator like "Scanning 2 of 4..." during the process
  • Display results in a scrollable list, each with safe/danger styling matching
    existing result cards
  • Update the stats counters (totalScans, safeCount, dangerCount) for each result
  • Save each result individually to localStorage history (reuse existing saveToHistory())

Files to change

  • index.html — add bulk scan toggle button and textarea (hidden by default)
  • script.js — add bulk scan logic, reuse existing checkSecurity() backend call
  • style.css — add styles for bulk mode textarea, results list, progress indicator

heyy @Mrinalray ,I'd like to work on this issue.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions