If you move blobs into their own table, the database may be able to optimize access to the primary table(s) because the record size is fixed; and for that matter, the blobs table(s) may also work a little better because they can be optimized for that kind of record.
If you have security concerns with a new blob table, how is your concern any better with the current system? Unless you are worried about bugs in your PHP, I suppose. A JOINed SELECT is every bit as safe and transactional as a single-table SELECT.
The overhead of using a JOIN can be very small if the foreign key(s) are indexed.
One option to keep things "simple" and similar to current is to add a friendly_names table that maps column names to friendly names; and read that in only at startup, then your PHP can use that information to present the friendly names when data is accessed.