{$layout}

<div class="margin"></div>
<p class="comment">当前安全设置只适用于管理系统，对用户网站没有任何影响。</p>
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
	<csrf-token></csrf-token>
	<table class="ui table definition selectable">
		<tr>
			<td class="title">Frame嵌套条件</td>
			<td>
				<select class="ui dropdown auto-width" name="frame" v-model="config.frame">
					<option value="">不限制</option>
					<option value="SAMEORIGIN">仅限同域名</option>
					<!--<option value="DENY">完全禁止</option>-->
				</select>
				<p class="comment">当前服务被别的网页框架嵌套的条件限制。</p>
			</td>
		</tr>
		<tr>
			<td>允许访问的国家和地区</td>
			<td>
				<countries-selector :v-countries="countries"></countries-selector>
				<p class="comment">设置后，只有这些国家和地区才能访问管理界面，如果不设置表示没有限制。</p>
			</td>
		</tr>
		<tr>
			<td>允许访问的省份（中国）</td>
			<td>
				<provinces-selector :v-provinces="provinces"></provinces-selector>
				<p class="comment">设置后，只有这些省份才能访问管理界面，如果不设置表示没有限制。</p>
			</td>
		</tr>
        <tr>
            <td>允许访问的IP</td>
            <td>
                <values-box name="allowIPs" placeholder="IP或者CIDR IP段" :values="config.allowIPs"></values-box>
                <p class="comment">如果不为空，则<strong>仅仅允许</strong>这些IP访问，其他的IP访问时会被拒绝。</p>
            </td>
        </tr>
		<tr>
			<td>允许局域网访问</td>
			<td>
				<checkbox name="allowLocal" v-model="config.allowLocal"></checkbox>
				<p class="comment">选中表示总是允许在本机和局域网访问，不需要其他限制条件。</p>
			</td>
		</tr>
        <tr>
            <td>允许记住登录</td>
            <td>
                <checkbox name="allowRememberLogin" v-model="config.allowRememberLogin"></checkbox>
                <p class="comment">选中表示允许在登录界面可以选择记住登录。</p>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <more-options-indicator></more-options-indicator>
            </td>
        </tr>
        <tbody v-show="moreOptionsVisible || showAll">
            <tr>
                <td class="color-border">自定义客户端IP报头</td>
                <td>
                    <input type="text" name="clientIPHeaderNames" v-model="config.clientIPHeaderNames"/>
                    <p class="comment"><a id="client-header-names"></a>可以通过此报头获取客户端IP，类似于<code-label>X-Forwarded-For X-Real-IP True-Client-IP Client-IP</code-label>&nbsp;<a href=""><span class="small" @click.prevent="addDefaultClientIPHeaderNames('X-Forwarded-For X-Real-IP True-Client-IP Client-IP')">[填入]</span></a>，用于使用反向代理访问管理系统的情形；如果有多个报头可以使用空格隔开。</p>
                </td>
            </tr>
            <tr v-show="config.clientIPHeaderNames.length > 0">
                <td class="color-border">仅从自定义报头中获取IP</td>
                <td>
                    <checkbox name="clientIPHeaderOnly" v-model="config.clientIPHeaderOnly"></checkbox>
                    <p class="comment">选中后，表示仅从自定义报头中获取IP，意味着客户端必须使用反向代理访问当前系统，不允许直接访问。</p>
                </td>
            </tr>
            <tr>
                <td>禁止搜索引擎</td>
                <td>
                    <checkbox name="denySearchEngines" v-model="config.denySearchEngines"></checkbox>
                    <p class="comment">禁止常见的搜索引擎访问。</p>
                </td>
            </tr>
            <tr>
                <td>禁止爬虫</td>
                <td>
                    <checkbox name="denySpiders" v-model="config.denySpiders"></checkbox>
                    <p class="comment">禁止常见的爬虫访问。</p>
                </td>
            </tr>
            <tr>
                <td>允许访问的域名</td>
                <td>
                    <domains-box :v-domains="config.allowDomains"></domains-box>
                    <p class="comment">只允许通过这些域名（或者IP作为主机地址）访问当前管理系统，不填表示没有限制。</p>
                </td>
            </tr>
            <tr>
                <td>检查客户端指纹</td>
                <td>
                    <checkbox name="checkClientFingerprint" v-model="config.checkClientFingerprint"></checkbox>
                    <p class="comment">选中后，表示每次管理员访问时都检查客户端相关信息是否跟登录时一致；如果客户端IP或User-Agent信息变化比较频繁，请不要启用此选项；如果当前系统下游有反向代理设置，请设置当前表单中的“自定义客户端IP报头”选项。</p>
                </td>
            </tr>
            <tr>
                <td>检查客户端区域</td>
                <td>
                    <checkbox name="checkClientRegion" v-model="config.checkClientRegion"></checkbox>
                    <p class="comment">选中后，表示每次管理员访问时都检查客户端所在地理区域是否和登录时一致；如果客户端所处地理区域变化比较频繁，请不要启用此选项；如果当前系统下游有反向代理设置，请设置当前表单中的“自定义客户端IP报头”选项。</p>
                </td>
            </tr>
        </tbody>
	</table>
	<submit-btn></submit-btn>
</form>