If the client can be re-configured to target Google DNS and bypass the FortiGate, that may frustrate a design using a local ' autoritative' DNS server.
I worked with a local school district and their SE, who added all the possible domains to a modified hosts.conf file, resolving all Google domains to the IP for nosslsearch.google.com.
With the hosts.conf file deployed, we verified all hosts would be forced to the correct site, and Safe Search was consistently applied. It could not be disabled from the browser.
One other catch is that the Proxy Options profile (config firewall profile-protocol-options from the CLI) applied to the policy needs to NOT allow chunked bypass. If someone attempts a search (for images or sites) and is successfully blocked, they could refresh the browser a number of times, or repeatedly toggle Safe Search settings until explicit images or search results are returned. With chunked bypass disabled, it will always work.
I have attached a reference file for hosts.conf. Append the lines to the end of an existing hosts.conf file to test. Make sure that you run Notepad as Administrator, in order to modify and save the file.
Please bear in mind this is from a case over three months ago. I have verified it since then in specific situations, but it would be wise to do a small test first as a proof of concept before relying on this to resolve an issue in any full production environment.
Regards,
Chris McMullan
Fortinet Ottawa