Exactamente, si es un número le puedes aplicar algún condicional, por ejemplo:
Código PHP:
if(is_numeric($idnoticia)){
// Comprueba si es numérico, aunque también puedes agregar una consulta para saber si existe una noticia con ese id..
if(mysql...){
// Existe, cargo los datos
}
else{
// No existe, redirecciono o muestro error
}
else{
// Aquí $idnoticia no es numerico, asi que redirecciono al index
}
Con PHP no podrás evitar que los usuarios cambien la URL, en tal caso tendrías que usar iframes, pero creo que los recomendable es usar condicionales y verificar que "?id=" sea un identificador válido para tu consulta.
Saludos.