<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href='images/favicon.ico' rel='shortcut icon' type='image/x-icon'>
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>CarbonData:Security</title>

    <!-- Bootstrap -->

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link href="css/style.css" rel="stylesheet">
    <link href="css/print.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<header>
    <nav class="navbar navbar-default navbar-custom cd-navbar-wrapper">
        <div class="container">
            <div class="navbar-header">
                <button aria-controls="navbar" aria-expanded="false" data-target="#navbar" data-toggle="collapse"
                        class="navbar-toggle collapsed" type="button">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a href="index.html" class="logo">
                    <img src="images/CarbonDataLogo.png" alt="CarbonData logo" title="CarbocnData logo"/>
                </a>
            </div>
            <div class="navbar-collapse collapse cd_navcontnt" id="navbar">
                <ul class="nav navbar-nav navbar-right navlist-custom">
                    <li><a href="index.html" class="hidden-xs"><i class="fa fa-home" aria-hidden="true"></i> </a></li>
                    <li><a href="index.html" class="hidden-lg hidden-md hidden-sm">Home</a></li>
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                           aria-expanded="false">Download <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/2.2.0/"
                                   target="_blank">Apache CarbonData 2.2.0</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.1/"
                                   target="_blank">Apache CarbonData 2.1.1</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.0/"
                                   target="_blank">Apache CarbonData 2.1.0</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.1/"
                                   target="_blank">Apache CarbonData 2.0.1</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.0/"
                                   target="_blank">Apache CarbonData 2.0.0</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.1/"
                                   target="_blank">Apache CarbonData 1.6.1</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.0/"
                                   target="_blank">Apache CarbonData 1.6.0</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.4/"
                                   target="_blank">Apache CarbonData 1.5.4</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.3/"
                                   target="_blank">Apache CarbonData 1.5.3</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.2/"
                                   target="_blank">Apache CarbonData 1.5.2</a></li>
                            <li>
                                <a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.1/"
                                   target="_blank">Apache CarbonData 1.5.1</a></li>
                            <li>
                                <a href="https://cwiki.apache.org/confluence/display/CARBONDATA/Releases"
                                   target="_blank">Release Archive</a></li>
                        </ul>
                    </li>
                    <li><a href="documentation.html" class="">Documentation</a></li>
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                           aria-expanded="false">Community <span class="caret"></span></a>
                        <ul class="dropdown-menu">

                            <li>
                                <a href="https://github.com/apache/carbondata/blob/master/docs/how-to-contribute-to-apache-carbondata.md"
                                   target="_blank">Contributing to CarbonData</a></li>
                            <li>
                                <a href="https://github.com/apache/carbondata/blob/master/docs/release-guide.md"
                                   target="_blank">Release Guide</a></li>
                            <li>
                                <a href="https://cwiki.apache.org/confluence/display/CARBONDATA/PMC+and+Committers+member+list"
                                   target="_blank">Project PMC and Committers</a></li>
                            <li>
                                <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=66850609"
                                   target="_blank">CarbonData Meetups</a></li>
                            <li><a href="security.html">Apache CarbonData Security</a></li>
                            <li><a href="https://issues.apache.org/jira/browse/CARBONDATA" target="_blank">Apache
                                Jira</a></li>
                            <li><a href="videogallery.html">CarbonData Videos </a></li>
                        </ul>
                    </li>
                    <li class="dropdown">
                        <a href="http://www.apache.org/" class="apache_link hidden-xs dropdown-toggle"
                           data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
                        <ul class="dropdown-menu">
                            <li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
                            <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                            <li><a href="http://www.apache.org/foundation/sponsorship.html"
                                   target="_blank">Sponsorship</a></li>
                            <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                        </ul>
                    </li>
                    <li class="dropdown">
                        <a href="http://www.apache.org/" class="hidden-lg hidden-md hidden-sm dropdown-toggle"
                           data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
                        <ul class="dropdown-menu">
                            <li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
                            <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                            <li><a href="http://www.apache.org/foundation/sponsorship.html"
                                   target="_blank">Sponsorship</a></li>
                            <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                        </ul>
                    </li>
                    <li>
                        <a href="#" id="search-icon"><i class="fa fa-search" aria-hidden="true"></i></a>
                    </li>
                </ul>
            </div><!--/.nav-collapse -->

            <div id="search-box">
                <form method="get" action="http://www.google.com/search">
                    <div class="search-block">
                        <table border="0" cellpadding="0" width="100%">
                            <tr>
                                <td style="width:80%">
                                    <input type="text" name="q" size=" 5" maxlength="255" value=""
                                           class="search-input" placeholder="Search...."    required/>
                                </td>
                                <td style="width:20%">
                                    <input type="submit" value="Search"/></td>
                            </tr>
                            <tr>
                                <td align="left" style="font-size:75%" colspan="2">
                                    <input type="checkbox" name="sitesearch" value="carbondata.apache.org" checked/>
                                    <span style=" position: relative; top: -3px;"> Only search for CarbonData</span>
                                </td>
                            </tr>
                        </table>
                    </div>
                </form>
            </div>

        </div>
    </nav>
</header> <!-- end Header part -->

<div class="fixed-padding"></div> <!--  top padding with fixde header  -->

<section style="position:relative; overflow:hidden ">
    <div class="meetup-banber-bg">
        <img src="images/CDbannerSliderbg.jpg" alt="CarbonData banner"/>
    </div>

    <div class="meetup-banber" style="padding:30px">
        <div class="container-fluid">
            <div class="col-md-12 col-sm-12">
                <h1 class="title-heading">
                    Indexed Columnar Data Format for Faster Analytics on <br>Big Data Platforms.

                    <span class="title-underline"></span>
                </h1>
            </div>
        </div>
    </div>
</section>

<section>
    <div class="container">
        <div class="row">
            <div class="col-md-12 col-sm-12">
                <div class="security-block">
                    <h1 class="title-heading"> Apache CarbonData Security
                        <span class="title-underline"></span>
                    </h1>

                    <p>
                        The Apache Software Foundation takes a rigorous standpoint in annihilating the security issues
                        in its software projects. Apache CarbonData is highly sensitive and forthcoming to issues
                        pertaining to its features and functionality.
                    </p>
                    <p>If you have apprehensions regarding CarbonData’s security or you discover vulnerability or
                        potential threat, don’t hesitate to get in touch with the Apache Security Team by dropping a
                        mail at <a href="mailto:security@apache.org"> security@apache.org</a>. In the mail, specify the
                        project name CarbonData with the description of the issue or potential threat. You are also
                        urged to recommend the way to reproduce and replicate the issue. The security team and the
                        CarbonData community will get back to you after assessing and analysing the findings.</p>
                    <p>
                        PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on
                        public domain.
                    </p>
                    <p>
                        The ASF Security Team maintains a page with the description of how vulnerabilities and potential
                        threats are handled, check their <a href="http://www.apache.org/security/" target="_blank">Web
                        page</a> for more Details.
                    </p>

                </div>
            </div>
        </div>
    </div>
</section>


<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->

<script src="js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
<script src="js/custom.js"></script>
<script src="js/mdNavigation.js" type="text/javascript"></script>
</body>
</html>