SELinuxはAmazon Linux 2で$ _POST変数をブロックしています。

SELinuxはAmazon Linux 2で$ _POST変数をブロックしています。

私はRPMベースのオペレーティングシステムを使い始め、深い印象を受けました。

  1. setroubleshootはAmazon Linuxリポジトリには含まれていません。私はすべてのために公式リポジトリを使用したいと思います。それ以外の場合は、船をスキップします。ログを確認しましたが、「SELinuxがブロック中です」エラーは表示されませんが、何を探すべきかわかりません。

  2. $_POST変数は、setenforceが許可に設定されている場合に機能します。

  3. 私のコードはDebianシステムで動作します。私のウェブサイトはAmazon Linuxからアクセスできますが、正しくリダイレ​​クトされません。

  4. 私はhttpdを使用しています(RPMではこれをapache2と呼びます)。 apachectl configtest は一般的な構文を返します。

ここに私のコードがあります。 index.phpです

<form action="index.php" method="post">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="hidden" name="hidden_value" value="true">
    <input type="submit">
</form>

その後、同じページにphp.iniファイルを作成しました。

<?php
if(isset($_POST['hidden_value']){

    /* Do the rest of your authentication math */

}
?>

Index.phpはindex.phpにリダイレクトされ、$ _POST変数はリダイレクトを処理します。ただし、SELinuxを許可に設定した場合にのみ機能します。 SELinuxを武装させたい。

PSリダイレクトは実行されますが、リダイレクト時に$ _POST変数は設定されません。

ベストアンサー1

正しい方向を教えてくれたUlrich Schwarzとhargutに感謝します。実際にはブール値です。提案されているようにhttpd_enable_cgiを有効にしましたが、まだ機能しません。次に、次のようにブール値のリストを表示しました。

sudo getsebool -a | grep httpd

これが私がブールというブールがあることを発見した方法です。

httpd_can_network_connect_db

そしてそれは閉鎖されました。

使って開きます

sudo setsebool httpd_can_network_connect_db=1

誰もがMySqlを使用し、Debianからセキュリティを強化されたシステムに移行する場合、これは前提条件です。 SELinuxについて学ぶことがたくさんあります。もう一度ありがとうございます。

おすすめ記事