I type really fast and realize that sometimes I accidentally save a file with the name of ; or : (I type :wq and sometimes a typo is i         
        
A simple yet effective solution would be to define an auto-command matching potentially mistyped file names, that issues a warning and terminates saving.
:autocmd BufWritePre [:;]* throw 'Forbidden file name: ' . expand('<afile>')
Note that the :throw command is necessary to make Vim stop writing
the contents of a buffer.
In order to avoid getting the E605 error because of an uncaught
exception, one can issue an error using the :echoerr command run in
the try block—:echoerr raises its error message as an exception
when called from inside a try construct (see :help :echoerr).
:autocmd BufWritePre [:;]*
\   try | echoerr 'Forbidden file name: ' . expand('<afile>') | endtry
If it is ever needed to save a file with a name matching the pattern
used in the above auto-command, one can prepend a writing command with
:noautocmd or set the eventignore option accordingly (see
:help :noautocmd and :help eventignore for details), e.g.:
:noa w :ok.txt