There are some areas where you could be vulnerable. Here's the broad rule of thumb: Don't trust anything that comes from the user's computer.
In order to understand where you could be vulnerable, you have to understand the general workflow of an HTTP request.
The browser headers are supplied by the web server and received by the user's computer. Not the other way around. So the user couldn't do anything to you with browser headers. (In some obscure universe, where the user is receiving web pages and storing them in a database, then sure, you could screw your users by planting SQL injection attacks in the browser headers but that's not your question).
The user's computer sends an HTTP request and puts headers in that. As you said, most web sites log some of this information but typically it's done in a flat text file so if you're running Apache out of the box, you're safe there.
If you are storing them in a SQL database, then you need to examine everything that comes in as part of those HTTP headers. Cookies are in the HTTP headers and definitely should be checked. User Agent (browser type and operating system) comes from the HTTP headers and definitely should be checked (again, only necessary if you are writing them to a database. Flat text file logging is safe which is how most people do it).
In your example, you mentioned the user's IP address. This information does not come from the HTTP headers. It comes from the TCP stack in your operating system which relays the IP to Apache which (A) safely writes it to a flat text file log and (😎 gives it to PHP to store in an environment variable. The user has no control over this - it doesn't come from the user's machine - and so it doesn't fall under the broad advice at the top of this post, "Don't trust anything that comes from the user's computer."