I read places like UpWork need your SSN. Should I give these types of sites my SSN? Is that really necessary?
In general you should guard your SSN as much as possible. It's one number than can allow for all sort of identity theft. It's also a number, since it's rarely used, people tend to forget is important. They give it to practically anyone who asks, doctors, dentists, contractors, etc. All of which don't actually need the SSN. They ask for it because it makes it easier on them if collections become necessary. But you aren't required to give it to them. I leave such form fields blank when I see them.
I don't give my SSN to anyone unless it involves something financial where I'm either being paid, or asking for money such as a mortgage, etc.
I do not know Upwork or any online service of it's type. However, I would assume the company behind the web site would either 1099 you at years end or send you a statement of earned income through their service. In either case they do have a legitimate reason for needing your SSN. Even if they don't do either of these items, they still have to pay taxes as well and detail who they paid what to. So having your SSN allows the IRS to track you down and check if you reported the income they claimed to pay you... or they reported too much.. or you failed to claim the income... basically.. it's the link between you two the IRS requires.
If you are uncomfortable providing your SSN in these types of situations, you can apply and receive an EIN (employment Identification Number) from the IRS. This number operates the same as a SSN in these situations essentially. You provide it to those paying you. However, only the IRS has the link between the EIN and your actual SSN. An EIN is a personal identifier for the IRS, not for everyone in the world. It's free and merely takes a moment to fill out the form.
Again, I don't know Upwork or if they are set up to accept EIN numbers in any online forms. EINs can only be 5-7 digits in some cases and not the 9 digits of an SSN.