A new spam page has started to appear throughout many 'questionable' sites (movie sites, etc.). This new spam page fits in to the category of fake scans, MacKeeper, 'YOU HAVE A VIRUS', etc. category.
The problem with this new page is that instead of just having a popup, the page actually initiates a download of a random 2kb (not harmful just contains random text) files repeatedly every ~1ms. The download folder fills up before you can close the window and you are left deleting 1000+ files. Unlike, a similar problem in which a page spam brings up the print dialog, there is very little time to react.
Run sudo /usr/sbin/softwareupdate -ignore 'macOS Catalina'. Enter your login password if asked, hit Enter and you should get confirmation that “macOS Catalina” updates will be ignored. Later, when you decide you want to allow the updates again, you can use: sudo /usr/sbin/softwareupdate -reset-ignored. There are many safeguards that can be put in place to prevent the fork bomb from working. The simplest is: ulimit -u 1024 limiting the number of user processes to 1024.
I tried locking the download folder. While it prevented the downloads from…well…downloading it, a dialog box (see image) comes up. Usually, I could just dismiss this dialog box, but since the download is attempted every ~1ms, I a new dialog pops up every time I try to dismiss, preventing me from closing the window.
Force quitting Safari, which stops the download (after 1k's downloads) but then I loose all my other windows
Changing settings to ‘Ask for each download’ in Safari preferences. Doesn't work because 1k's of separate dialog boxes open prevent me from even closing the tab. Eventually crashing Safari.
How can I prevent spam downloads in Safari?
UPDATE:
Heres the code causing the download (got it by disabling JavaScript and looking through code manually):
Note: I had some issues running the JS on a custom page. It froze instead of downloaded. I was able to emulate the download by using a setInterval()
function calling a the download
function.
More info: https://blog.malwarebytes.com/malwarebytes-news/2018/02/tech-support-scammers-find-new-way-jam-google-chrome/
The spinning pinwheel is a variation of the mouse pointer arrow, used in Apple's macOS to indicate that an application is busy.[1]
Officially, the macOS Human Interface Guidelines refers to it as the spinning wait cursor,[2] but it is also known by other names, including the spinning beach ball[3], the spinning wheel of death[4], the spinning beach ball of death,[5] or the ferris wheel of death.
A wristwatch was the first wait cursor in early versions of the classic Mac OS. Apple's HyperCard first popularized animated cursors, including a black-and-white spinning quartered circle resembling a beach ball. The beach-ball cursor was also adopted to indicate running script code in the HyperTalk-like AppleScript. The cursors could be advanced by repeated HyperTalk invocations of 'set cursor to busy'.
Wait cursors are activated by applications performing lengthy operations. Some versions of the Apple Installer used an animated 'counting hand' cursor. Other applications provided their own theme-appropriate custom cursors, such as a revolving Yin Yang symbol, Fetch's running dog, Retrospect's spinning tape, and Pro Tools' tapping fingers. Apple provided standard interfaces for animating cursors: originally the Cursor Utilities (SpinCursor, RotateCursor)[6] and, in Mac OS 8 and later, the Appearance Manager (SetAnimatedThemeCursor).[7]
NeXTStep 1.0 used a monochrome icon resembling a spinning magneto-optical disk.[a] Some NeXT computers included an optical drive which was often slower than a magnetic hard drive and so was a common reason for the wait cursor to appear.
When color support was added in NeXTStep 2.0, color versions of all icons were added. The wait cursor was updated to reflect the bright rainbow surface of these removable disks, and that icon remained even when later machines began using hard disk drives as primary storage. Contemporary CD Rom drives were even slower (at 1x, 150 kbit/s).[b]
With the arrival of Mac OS X the wait cursor was often called the 'spinning beach ball' in the press,[8] presumably by authors not knowing its NeXT history or relating it to the hypercard wait cursor.
The two-dimensional appearance was kept essentially unchanged[c] from NeXT to Rhapsody/Mac OS X Server 1.0 which otherwise had a user interface design resembling Mac OS 8/Platinum theme, and through Mac OS X 10.0/Cheetah and Mac OS X 10.1/Puma, which introduced the Aqua user interface theme.
Mac OS X 10.2/Jaguar gave the cursor a glossy rounded 'gumdrop' look in keeping with other OS X interface elements.[9]In OS X 10.10, the entire pinwheel rotates (previously only the overlaying translucent layer moved).With OS X 10.11 El Capitan the spinning wait-cursor's design was updated. It now has less shadowing and has brighter, more solid colors to better match the design of the user interface. The colors also turn with the spinning, not just the texture.
In single-tasking operating systems like the original Macintosh operating system, the wait cursor might indicate that the computer was completely unresponsive to user input, or just indicate that response may temporarily be slower than usual due to disk access. This changed in multitasking operating systems such as System Software 5, where it is usually possible to switch to another application and continue to work there. Individual applications could also choose to display the wait cursor during long operations (and these were often able to be cancelled with a keyboard command).
After the transition to Mac OS X (macOS), Apple narrowed the wait cursor meaning. The display of the wait cursor is now controlled only by the operating system, not by the application. This could indicate that the application was in an infinite loop, or just performing a lengthy operation and ignoring events. Each application has an event queue that receives events from the operating system (for example, key presses and mouse button clicks); and if an application takes longer than 2 seconds[10] to process the events in its event queue (regardless of the cause), the operating system displays the wait cursor whenever the cursor hovers over that application's windows.
This is meant to indicate that the application is temporarily unresponsive, a state from which the application should recover. It also may indicate that all or part of the application has entered an unrecoverable state or an infinite loop. During this time the user may be prevented from closing, resizing, or even minimizing the windows of the affected application (although moving the window is still possible in OS X, as well as previously hidden parts of the window being usually redrawn, even when the application is otherwise unresponsive). While one application is unresponsive, typically other applications are usable. File system and network delays are another common cause.
By default, events (and any actions they initiate) are processed sequentially, which works well when each event involves a trivial amount of processing, the spinning wait cursor appearing until the operation is complete. If processing takes long, the application will appear unresponsive. Developers may prevent this by using separate threads for lengthy processing, allowing the application's main thread to continue responding to external events. However, this greatly increases the application complexity. Another approach is to divide the work into smaller packets and use NSRunLoop or Grand Central Dispatch.
Instruments is an application that comes with the Mac OS X Developer Tools. Along with its other functions, it allows the user to monitor and sample applications that are either not responding or performing a lengthy operation. Each time an application does not respond and the spinning wait cursor is activated, Instruments can sample the process to determine which code is causing the application to stop responding. With this information, the developer can rewrite code to avoid the cursor being activated.
Apple's guidelines suggest that developers try to avoid invoking the spinning wait cursor, and suggest other user interface indicators, such as an asynchronous progress indicator.
The spinning wait cursor is commonly referred to as the (Spinning) x (of Death/Doom).[d] The most common words or phrases x can be replaced with include:
Applications SPOD if they don’t service the event loop for two secondsCS1 maint: discouraged parameter (link)