Я только что обнаружил, что редактирование кнопки в инструментах разработчика для включения отключенной кнопки ничего не меняет. Кнопка каким-то образом остается отключенной внутри. (Хотя отключенные эффекты стиля удалены)
//This is how the button looks like in Chrome developer tools
<button disabled>Post</button>
//editing out "disabled" does nothing. The click event doesn't get called
Интересно, что попытка отключить включенную кнопку также ничего не меняет. Метод onClick по-прежнему вызывается при нажатии.
До моего открытия я всегда использовал флаг, чтобы заблокировать щелчок, если злоумышленник активировал кнопку.
....
const [enabled, setEnabled] = useState(false)
....
....
const postData = () = {
if(!enabled) return;
//sensitive action takes place here
}
....
....
return(
<button disabled={!enabled} onClick={postData}>Post</button>
);
....
Я просто хочу знать, безопасно ли удалять строку if(!enabled) return;
из функции postData()
. Существуют ли другие инструменты, которые действительно могут активировать отключенную кнопку реагирования или напрямую вызывать postData()
?
return
, если это необходимо). Но если это проблема безопасности, общее правило состоит в том, чтобы никогда не доверять тому, что вам отправляет внешний интерфейс, и адаптировать свое поведение на стороне сервера. - person Treycos   schedule 13.05.2020